我想要选择的是没有指定负责人在同一部门工作的员工名单(员工#24有来自其他部门的负责人,有些人员根本没有负责人)
所以这是一个问题: 为什么会这样:
SELECT
*
FROM
employee a
WHERE
a.cheif_id NOT IN (SELECT
cheif_id
FROM
employee b
WHERE
b.dep_id = a.dep_id
AND b.id = a.cheif_id);
但这不是:
SELECT
*
FROM
employee a
WHERE
a.cheif_id <> (SELECT
cheif_id
FROM
employee b
WHERE
b.dep_id = a.dep_id
AND b.id = a.cheif_id);
此外,如果我们想要选择在同一部门工作的指定负责人的员工&#39; =&#39;和&#39; in()&#39;作品。
对不起因为错误。
答案 0 :(得分:1)
如果您的子查询中有多个数据,则无法使用<>
,您可以使用NOT IN
我认为您可以使用JOIN
代替subquery
SELECT e1.name chiefname,e2.*
FROM employee e1
INNER JOIN e2
ON e1.dep_id = e2.dep_id AND e1.id = e2.cheif_id