sql查询请,我已经尝试但我无法得到它

问题描述 投票:-2回答:1

查找他们管理的所有员工共享同一办公室的所有经理。您应该返回他们的所有管理人员所在的开斋节,他们的名字和办公室。

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;  

上面的查询是对的??

mysql
1个回答
0
投票

您可以从表Employee中选择列,同时要求获取经理的详细信息。 您可以使用两个表格之间的INNER JOINGROUP 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声明规定所有员工共用一个办公室。 我猜Employee表中有一个列,如mid,它引用了员工的经理ID。将其更改为实际列的名称。

© www.soinside.com 2019 - 2024. All rights reserved.