SQL查询联接表并返回具有动态ID的所有记录

时间:2019-07-19 17:49:07

标签: mysql sql

我有两个表:staffsteams。这是它们的属性:

 # Staffs Table
 id | name
  1 | john
  2 | bob
  3 | alex
  4 | george


 # Teams Table
 id | name   | supervisor_id
  1 | a-team   1
  2 | b-team   1
  3 | c-team   2 
  4 | d-team   3

我想编写一个查询,该查询返回作为主管的所有员工ID记录。我知道如何联接表,但是我不知道如何完成查询。我也不想重复。

在上面的示例数据中:“ john”,“ bob”和“ alex”的人员ID应该全部返回一次。 “ george”的工作人员ID不应返回,因为他不是主管。

SELECT distinct(staffs.id) 
FROM staffs 
INNER JOIN teams
ON staffs.id = teams.supervisor_id
WHERE ??? ;

1 个答案:

答案 0 :(得分:2)

使用where子句

中的子查询会更容易
SELECT distinct(staffs.id) 
FROM staffs 
WHERE staffs.ID IN (select supervisor_id from Teams)

编辑: SQL Fiddle