如何使用IN或NOT IN查询无关联员工的部门名称?
解决方案:使用NOT IN查询无关联员工的部门名称
原语句问题分析
- 字段名错误:employee表中关联部门的字段是
department_id,而非id_department - 未处理NULL值:employee表存在
department_id为NULL的记录,当NOT IN的子查询包含NULL时,整个WHERE条件会返回UNKNOWN,导致结果为空集
正确SQL语句
SELECT name FROM department WHERE id NOT IN ( SELECT DISTINCT department_id FROM employee WHERE department_id IS NOT NULL );
说明
- 修正字段名:将子查询中的错误字段
id_department改为表中实际存在的department_id - 过滤NULL值:通过
WHERE department_id IS NOT NULL排除无关联部门的员工记录,避免NOT IN遇到NULL引发的逻辑异常
执行该语句后,会返回预期的无关联员工的部门名称:Projects和Advertising
内容的提问来源于stack exchange,提问作者deghuy
相关产品推荐
相关产品推荐

