压缩多个嵌套的select语句

问题描述 投票:0回答:1

我想为每个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
mysql sql select
1个回答
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是完整的表,那么它将为你过滤最新的投票。

© www.soinside.com 2019 - 2024. All rights reserved.