0

我有 2 个 mysql 表,membersteam_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

问题是查询与我需要的正好相反。它正在从已经拥有团队的成员中选择数据。我也尝试使用'!='但这给了我所有重复的字段,但不会重复属于团队的成员。

4

2 回答 2

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
于 2013-09-01T00:25:34.377 回答
1

尝试这个:

SELECT *
FROM members a
WHERE NOT EXISTS (
  SELECT 1
  FROM team_members b
  WHERE b.member_id = a.member_id
  )

请注意,此语法非常接近您表达问题的方式。有时 SQL 可以很简单;但像任何语言一样,你需要掌握词汇。

于 2013-09-01T00:27:43.230 回答