为什么我不能从MySQL中的子查询中选择一列?

时间:2014-02-12 02:16:33

标签: mysql sql

我有以下数据:

http://i.imgur.com/e4d8M8V.png?1

我运行以下MySQL代码

select distinct i.InstructorID, i.Salary
from Instructor i
where (i.InstructorID NOT IN (select o.InstructorID from Offering o));

这里给出了所需的输出:

http://i.imgur.com/rkFKseX.png?1

我怎样才能从这个查询中获得工资?

我试过

$MySQL:>select (i.Salary)
from (select distinct i.InstructorID, i.Salary
from Instructor i
where (i.InstructorID NOT IN (select o.InstructorID from Offering o)));

以及尝试将第一个选择参数更改为i1.Salary或只是简单(Salary),但无论我做什么我只是得到语法错误

SQLException: com.mysql.jdbc.exceptions.MySQLSyntaxErrorExceptio

1 个答案:

答案 0 :(得分:1)

在MySQL中,在任何子查询之后都需要一个表别名。所以以下内容应该有效:

select t.Salary
from (select distinct i.InstructorID, i.Salary
      from Instructor i
      where (i.InstructorID NOT IN (select o.InstructorID from Offering o))
     ) t;

请注意t。这是子查询的名称,是MySQL所必需的。名称“t”是任意的。你可以给它任何有效的名字。