这个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
答案 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