0

我使用以下 SQL 查询来获取两个随机行。

entry.sql
SELECT id, userID, img, points, votes 
FROM entry
WHERE rotation = 1
ORDER BY RAND()
LIMIT 2

现在我想过滤可能的行。我在这里做这个,rotation但我想要更多。

我有第二个和第三个表,如下所示:

users.sql    
ID | username

voted.sql
ID | userID | entryID | timestamp

我只想获取用户尚未投票的行。所以我们应该得到所有entryIDsuserfromvoted.sql并确保上面的查询没有选择它们,我该怎么做?

或者您会以不同的方式保存数据以使数据already voted check更容易吗?

4

1 回答 1

1

使用联接或子查询来执行此操作,例如:

SELECT id, user.userID, entry.img, entry.points, entry.votes
FROM entry
WHERE userID NOT IN (SELECT DISTINCT userID 
                     FROM voted
                     WHERE userID = entry.userID);
于 2013-11-12T16:24:56.520 回答