SQL查询可以在from子句中包含子查询吗?
我编写了以下查询,该查询旨在查找每个员工的所有工资的最大总和。出于某种原因,mysql 似乎不喜欢 from 子句中的子查询。
select max(sumwages)
from
(select staff.name, sum(wages) as sumwages
from staff, schedule
where staff.ssn = schedule.ssn
group by staff.ssn)
我还编写了这个更简单的查询来测试我的理论。这也给出了语法错误。我正在尝试做的甚至是可能的还是我必须找到另一种方法?
select *
from (select ssn from staff)
回答
是的。在 MySQL 中,这些被称为派生表。每个派生表都需要一个别名:
select max(sumwages)
from (select staff.name, sum(wages) as sumwages
from staff join
schedule
on staff.ssn = schedule.ssn
group by staff.ssn
) ss;
还要注意正确、明确、标准、可读的JOIN语法的使用。 切勿在FROM子句中使用逗号。