如何在self内连接mysql查询中选择不同的值?

时间:2018-06-12 05:53:37

标签: mysql

这个mysql查询从评论中选择最大值,但是insId是重复的,但是我希望得到重复的insId。

SELECT reviews.id, reviews_max.insId, reviews_max.maxAvgRating
FROM 
(
    SELECT insId, MAX(avgRating) AS maxAvgRating
    FROM reviews
    WHERE status = '1'
    GROUP BY insId
) AS reviews_max 
INNER JOIN reviews
    ON reviews.insId = reviews_max.insId AND
       reviews.avgRating = reviews_max.maxAvgRating

1 个答案:

答案 0 :(得分:0)

如果没有像这样的子选择,你能不能这样做?

SELECT MAX(reviews.id) as id, MAX(reviews.insId), MAX(reviews.avgRating) AS maxAvgRating
FROM reviews
WHERE status = 1
GROUP BY reviews.id, reviews.insId

如果你愿意,你仍然可以将id复制为insId,但该值应该已经在id字段中。

我使用SQLFiddle创建了一个快速示例:http://sqlfiddle.com/#!9/5b6421/2/0

相关问题