繁体   English   中英

"SQL UNION 失败"

[英]SQL UNION failed

这是我的查询:

select dept_name, count(*)  as student_number 
from Student s join Department d
on s.dept_id=d.dept_id
group by dept_name 
order by student_number desc, dept_name asc
UNION 
select d.dept_name, 0 as student_number
from Department d left join Student s
on s.dept_id=d.dept_id
where student_id  is NULL

您的查询的问题是ORDER BY<\/code>子句,这在第一个联合查询中是不允许的。
它应该放在联合的最终结果的最后。

但是,您不需要UNION<\/code> 。
您可以使用Department<\/code>到Student<\/code>的LEFT<\/code> join 来做到这一点:

SELECT d.dept_name, count(s.student_id) AS student_number 
FROM Department d LEFT JOIN Student s
ON s.dept_id = d.dept_id
GROUP BY d.dept_name 
ORDER BY student_number DESC, dept_name ASC;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM