0

我正在寻找加入 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,它就不会显示。我希望我是有道理的。非常感谢。

4

1 回答 1

1

尝试使用这样的子查询:

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

此查询意味着如果他们的 id 与 music.id 3 无关,则选择所有用户。

于 2012-11-28T03:24:52.967 回答