希望我可以清楚地解释这一点,但是,现在大约两天,我一直在尝试从一个表中选择另一个表中不存在的数据。
所以,基本上,我想从一个尚未收听的曲目列表中进行选择。
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
答案 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;