MySQL Left连接多行

时间:2012-11-28 02:59:49

标签: mysql join rows

我想加入2个表,但第二个表有一对多的关系。如果任何一行有特定值,我可以省略整行吗?让我解释一下。

User table

id name email
1  bob  bob@test.com
2  foo  foo@test.com


Music table

id userId
1  1
1  2
2  1
3  1
2  2

假设我不希望它显示用户是否与音乐表ID 2有关系。还要寻找不同的用户。

如果我尝试这样的话,它仍会显示两个用户。

SELECT * FROM users u LEFT JOIN music m ON u.id = m.userId WHERE m.id <> 3

我希望它检查所有行,如果它有id 3,它将不会显示。我希望我有道理。非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试使用这样的子查询:

SELECT * FROM users
WHERE id NOT IN (SELECT userId FROM music WHERE id=3)

此查询表示如果所有用户的ID与music.id 3无关,则选择所有用户。