如何选择用户尚未投票的所有项目(投票系统)

时间:2014-11-04 16:56:46

标签: mysql sequel

我有三张桌子:

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个。

有人可以帮助我吗?

1 个答案:

答案 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
        )