压缩多个嵌套的select语句

时间:2018-03-02 01:04:45

标签: mysql sql select

我正在尝试为每个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

1 个答案:

答案 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是完整的表格,那么它将为你过滤最新的投票。