我有三张桌子:
videos: id, name, path...
users: id, name,...
likes: id, user_id, video_id,...
我想选择我的用户没有投票的所有视频。
我试过了:
SELECT `videos`.*
FROM `videos`
WHERE `id` NOT IN (
SELECT `video_id` FROM `likes` WHERE likes.`user_id` IS NOT '1'
)
ORDER BY RAND() ASC
LIMIT 10
我还应该提一下,我的用户一次只能看到10个项目,随机选择,这就是为什么我随机订购它们并将其限制为10个。
有人可以帮助我吗?
答案 0 :(得分:0)
尝试使用NOT EXISTS
:
SELECT videos.*
FROM videos
WHERE NOT EXISTS
(
SELECT 1
FROM likes
WHERE likes.id = videos.id
AND likes.user_id = USER_ID
)