我正在尝试为每个userId获取最新的投票(基于dateCreated)。下面我的尝试有效,但我觉得多个嵌套的SELECT语句非常低效。谁有更好的解决方案?我是SQL的新手,所以我很感激你的解决方案以及代码。
SELECT * FROM
(
SELECT DISTINCT t.userId
FROM
(
SELECT userId,vote,dateCreated
FROM pgVote
WHERE categoryId = 528
ORDER BY dateCreated DESC
)
AS t
)
AS u
答案 0 :(得分:0)
SELECT aa.*
FROM pgVote aa
INNER JOIN (
SELECT userId, MAX(dateCreated) as latestDate
FROM pgVote
WHERE categoryId = 528
GROUP BY userId
) bb ON aa.userId = bb.userId AND aa.dateCreated = bb.latestDate
表bb只是具有最新日期的用户标识列表。一旦你内部加入aa是完整的表格,那么它将为你过滤最新的投票。