我有两个表:staffs
和teams
。这是它们的属性:
# 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 ??? ;
答案 0 :(得分:2)
使用where子句
中的子查询会更容易SELECT distinct(staffs.id)
FROM staffs
WHERE staffs.ID IN (select supervisor_id from Teams)
编辑: SQL Fiddle