我有一张桌子,我想从哪里获得最新的评论评论,但是当我按功能使用group时它显示我的错误.. 我不想显示重复的记录
下面是表格和查询..
SELECT * FROM `dev_web_comments` GROUP BY rID
我通过此查询得到的结果如下,但我希望对于rID 41应该显示最新评论。像最新的评论是“这是测试”
原始表格如下
答案 0 :(得分:1)
您需要加入自己并返回最长日期。它也适用于最新的ID。
SELECT *
FROM dev_web_comments AS d1
INNER JOIN (
SELECT rID, MAX(cDate) AS maxDate
FROM dev_web_comments
GROUP BY rID) AS d2 ON d2.rID = d1.rID AND d2.maxDate = d1.cDate
GROUP BY d1.rID
您可以按照您想要的任何字段进行订购。
答案 1 :(得分:1)
在我看来,您可以获取每个不同cID
值的最新评论的rID
值,如下所示:
SELECT MAX(cID) cID, rID
FROM dev_web_comments
GROUP BY rID
这是基于这样的假设:每个新注释都由插入表中的一行表示,cID
列是一个自动增量列。
这意味着您可以获取每个rID
的最新评论的详细信息
SELECT a.cID, a.rID, a.wID, a.commentContent, a.cDate, a.wwID
FROM dev_web_comments
JOIN (
SELECT MAX(cID) cID, rID
FROM dev_web_comments
GROUP BY rID
) b ON a.cID = b.cID
您问题中的查询表明您有陷入臭名昭着的MySQL GROUP BY
陷阱的危险。不要那样做。读这个。 https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html