0

所以我这个查询的主要目标是选择一个名为 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 运算符之后使用它?

4

2 回答 2

2

您可以使用EXISTS在多个列上进行匹配。

WHERE EXISTS
(
    SELECT *
    FROM employee AS manager
    WHERE manager.name = 'Mario Souza'
    AND manager.id = e.idmanager
    AND manager.id = d.manager
)
于 2012-04-08T21:42:51.853 回答
1

您可以将 JOIN 与员工表一起使用。只需将 manager 和 idmanager 都放在 ON 子句中。

于 2012-04-08T21:29:19.680 回答