MySQL 连接返回从另一个表链接的不同 ID

标签 mysql join

假设我有三个表:

地点 - 一个商店可以属于多个地点,一个地点可以有多个商店

+-------------+----------+
| LOCATION_ID | STORE_ID |
+-------------+----------+

STORES - only one row per store, every store has only one manager ID

+----------+------------+
| STORE_ID | MANAGER_ID |
+----------+------------+

EMPLOYEES - a manager can have multiple employees, and employees can belong to more than one manager

+-------------+-------------+
| MANAGER_ID  | EMPLOYEE_ID |
+-------------+-------------+

And for a given location (e.g. LOCATION_ID = 999), I want to get all the employees managed at stores at that location.

This gets me the list of managers that belong to stores in that location:

SELECT s.MANAGER_ID FROM LOCATIONS l
  INNER JOIN STORES s 
     ON s.STORE_ID = l.STORE_ID 
  WHERE l.LOCATION_ID = 999;

我真正想要的是链接到查询吐出的经理的所有不同的 EMPLOYEE_ID。

我可以在同一查询中添加哪些附加联接来获得该结果?

最佳答案

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; 

关于MySQL 连接返回从另一个表链接的不同 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4271170/

相关文章:

php - 如何在php表中打印多个ajax响应值

mysql - 安装 Drupal 7 时出错

MySQL:范围基于外部表中的行

sql - JOIN 如何在数据库中工作的内部结构(SQL,比如在 MySQL 中)

javascript - 使用流程图从数据库中检索数据

mysql - 使用 UNION ALL 进行慢速查询

mysql - 添加额外的列以减少复杂的查询

MySQL 根据多个条件对连接表进行计数

MYSQL 从两个表中选择,但第二个表并不总是与第一个表有关系

mysql - NOT IN 在我的查询中不起作用