我想加入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,它将不会显示。我希望我有道理。非常感谢。
答案 0 :(得分:1)
尝试使用这样的子查询:
SELECT * FROM users
WHERE id NOT IN (SELECT userId FROM music WHERE id=3)
此查询表示如果所有用户的ID与music.id 3无关,则选择所有用户。