繁体   English   中英

SQL 中的右外 JOIN

[英]Right outer JOIN in SQL

我必须列出所有没有分配任何员工的部门,但我不知道如何使用外连接解决这个问题。 数据库的方案是:

数据库方案

我目前的说法是

SELECT DISTINCT d.department_name 
FROM departments d 
RIGHT OUTER JOIN employees e ON NOT e.department_id IS NULL;

但它不能正常工作。

我的结果是这样的:

我的结果

它应该如下所示:

预期结果

有人知道出了什么问题吗?

您可以像这样将其作为outer left join ,与department_id相关

SELECT d.department_name 
FROM departments d 
LEFT JOIN employees e ON e.department_id=d.department_Id
WHERE e.employee_id is null

或者更直观的版本是没有任何员工的 department_id

SELECT d.department_name
FROM departments d
WHERE NOT EXISTS (SELECT * FROM employees e WHERE e.department_id=d.department_Id )

暂无
暂无

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

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