所以这个查询的主要目标是选择名为Mario Souza的经理下的所有部门和员工。
SELECT d.deptname,e.name FROM employee e JOIN department d ON e.dept = d.deptnum WHERE idmanager IN(
SELECT id FROM employee WHERE name = 'Mario Souza'
) AND manager IN(
SELECT id FROM employee WHERE name = 'Mario Souza'
)
它有效,但有没有办法存储第一个IN结果,以便我可以在AND运算符之后使用它?
答案 0 :(得分:2)
您可以使用EXISTS
匹配多列。
WHERE EXISTS
(
SELECT *
FROM employee AS manager
WHERE manager.name = 'Mario Souza'
AND manager.id = e.idmanager
AND manager.id = d.manager
)
答案 1 :(得分:1)
您可以在员工表中使用JOIN。简单地将经理和idmanager都放在ON子句中。