Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL连接以返回从另一个表链接的不同ID_Mysql_Join - Fatal编程技术网

MySQL连接以返回从另一个表链接的不同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

假设我有三张桌子:

位置-一个存储可以属于多个位置,并且一个位置可以有多个存储

+-------------+----------+ | LOCATION_ID | STORE_ID | +-------------+----------+ 我真正想要的是所有不同的员工ID,这些ID链接到查询吐出的经理


我可以在同一个查询中添加哪些额外的联接来获得该联接?

在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 ...