MySQL连接以返回从另一个表链接的不同ID
假设我有三张桌子: 位置-一个存储可以属于多个位置,并且一个位置可以有多个存储 +-------------+----------+ | LOCATION_ID | STORE_ID | +-------------+----------+ 我真正想要的是所有不同的员工ID,这些ID链接到查询吐出的经理MySQL连接以返回从另一个表链接的不同ID,mysql,join,Mysql,Join,假设我有三张桌子: 位置-一个存储可以属于多个位置,并且一个位置可以有多个存储 +-------------+----------+ | LOCATION_ID | STORE_ID | +-------------+----------+ 我真正想要的是所有不同的员工ID,这些ID链接到查询吐出的经理 我可以在同一个查询中添加哪些额外的联接来获得该联接?在s.MANAGER\u ID=e.MANAGER\u ID上添加内部联接员工e应该可以获得员工 SELECT DISTINCT E.EMPL
我可以在同一个查询中添加哪些额外的联接来获得该联接?在s.MANAGER\u ID=e.MANAGER\u ID上添加
内部联接员工e应该可以获得员工
SELECT DISTINCT E.EMPLOYEE_ID
FROM LOCATIONS L
INNER JOIN STORES S ON S.STORE_ID = L.STORE_ID
INNER JOIN EMPLOYEES E ON S.MANAGER_ID = E.MANAGER_ID
WHERE L.LOCATION_ID = 999;
但我注意到您正在询问如何选择所有不同的员工ID。将SELECT子句更改为SELECT DISTINCT e.EMPLOYEE_ID
,而不是返回门店经理的ID
RedFilter的回答很好地说明了这一点。:)
您可以在员工ID之前添加DISTINCT关键字,但是如果数据正确规范化,则不需要这样做。奇怪,我以为我尝试了这个方法,但每个经理只返回一个员工ID,显然我搞错了什么。谢谢
+-------------+-------------+
| MANAGER_ID | EMPLOYEE_ID |
+-------------+-------------+
SELECT s.MANAGER_ID FROM LOCATIONS l
INNER JOIN STORES s
ON s.STORE_ID = l.STORE_ID
WHERE l.LOCATION_ID = 999;
SELECT DISTINCT E.EMPLOYEE_ID
FROM LOCATIONS L
INNER JOIN STORES S ON S.STORE_ID = L.STORE_ID
INNER JOIN EMPLOYEES E ON S.MANAGER_ID = E.MANAGER_ID
WHERE L.LOCATION_ID = 999;
SELECT e.EMPLOYEE_ID ... INNER JOIN EMPLOYEES e ON e.MANAGER_ID = s.MANAGER_ID ...