我有2个mysql表,成员和 team_members 。
成员表:
member_id
name
team_members表:
team_id
member_id
我想从成员表中选择不属于任何团队的数据( team_members 表中不存在)
SELECT *
FROM members
INNER JOIN team_members
ON members.member_id = team_members.member_id
问题在于查询正在完全正好相反。它正在从已经拥有团队的成员中选择数据。 我也尝试使用'!=',但这会让我复制所有字段,但不会复制属于团队的成员。
答案 0 :(得分:3)
使用左连接,并从team_members
表中选择没有相应数据的记录:
select m.*
from members as m
left join team_members as t on m.member_id = t.member_id
where t.member_id is null
答案 1 :(得分:1)
试试这个:
SELECT *
FROM members a
WHERE NOT EXISTS (
SELECT 1
FROM team_members b
WHERE b.member_id = a.member_id
)
请注意,此语法与您如何处理问题非常接近。有时SQL可以很容易;但就像任何语言一样,你需要掌握词汇量。