MySQL加入;仅查询不匹配的表字段

时间:2015-08-24 00:49:29

标签: php mysql

希望我可以清楚地解释这一点,但是,现在大约两天,我一直在尝试从一个表中选择另一个表中不存在的数据。

所以,基本上,我想从一个尚未收听的曲目列表中进行选择。

SELECT *
FROM tracks JOIN listens
ON listens.user_id = tracks.user_id
WHERE listens.user_id != 9;

PS:我尝试了很多解决方案,包括工会和子查询。这是我在放弃自己搞清楚之前所要做的。

我的桌面设置:

[磁道] ID | USER_ID

[侦听] ID | track_id | USER_ID

我只想要没有收听的曲目,并且由于某种原因我无法实现这一目标。它只返回所有曲目,甚至有时会删除尚未收听的曲目。

正确方法有什么意义吗?非常感谢!非常感谢:D

1 个答案:

答案 0 :(得分:1)

要查找用户9未列出的曲目,可以使用以下方法之一:

SELECT t.*
FROM tracks t left join
     listens l
     on l.track_id = t.id AND l.user_id = 9
WHERE l.user_id is null;