查找所有其管理的所有雇员共享同一办公室的经理。您应该返回他们的开斋节,他们的名字以及所有被管理人员所在的办公室。
SELECT e.eid AS ID,
e.NAME AS NAME,
e.office AS office
FROM employee e,
manager m
WHERE e.eid = m.mid
GROUP BY m.mid;
以上查询对吗?
答案 0 :(得分:0)
您需要从表Employee
中选择列,而要求是要获取经理的详细信息。
您可以在INNER JOIN
和聚合这2个表之间使用GROUP BY m.mid, m.name
来做到这一点:
SELECT
m.mid as ID,
m.name as Name,
MAX(e.office) office
FROM Manager m INNER JOIN Employee e
ON e.mid = m.mid
GROUP BY m.mid, m.name
HAVING COUNT(DISTINCT e.office) = 1
语句HAVING COUNT(DISTINCT e.office) = 1
设置了所有雇员共享1个办公室的条件。
我猜想Employee
表中有一列像mid
那样引用了员工的经理ID。将其更改为实际列的名称。