Mysql 无法选择日期最长的最新行
上面的DB表结构 结果 看到图片了吗Mysql 无法选择日期最长的最新行,mysql,sql,Mysql,Sql,上面的DB表结构 结果 看到图片了吗 SELECT max(comment_date), comment_content FROM wp_comments WHERE comment_post_id = 8687 它选择具有最新日期但内容错误的字段 我想在下面的查询中实现这一点,该查询已经有一个GROUP BY语句和多个联接,使用limit会改变结果。您的查询应该失败,因为它是一个聚合查询,没有GROUP BY,但有未聚合的列 SELECT comment_date, comment_cont
SELECT max(comment_date), comment_content FROM wp_comments WHERE comment_post_id = 8687
它选择具有最新日期但内容错误的字段
我想在下面的查询中实现这一点,该查询已经有一个GROUP BY语句和多个联接,使用limit会改变结果。您的查询应该失败,因为它是一个聚合查询,没有
GROUP BY
,但有未聚合的列
SELECT comment_date, comment_content
FROM wp_comments
WHERE comment_post_id = 8687
AND comment_date = (Select max(b.comment_date) from
wp_comment b)
执行此操作的简单方法是使用按顺序
和限制
:
SELECT c.*
FROM wp_comments c
WHERE comment_post_id = 8687
ORDER BY comment_date DESC
LIMIT 1;
在子查询中选择“最大日期”,并获取所需的列
SELECT comment_date, comment_content
FROM wp_comments
WHERE comment_post_id = 8687
AND comment_date = (Select max(b.comment_date) from
wp_comment b)
对具有最大日期的同一表使用联接并搜索一致性
SELECT comment_date, comment_content
FROM wp_comments a
JOIN (SELECT comment_post_id, max(comment_date) as maxdate FROM wp_comments) b ON
b.comment_post_id = a.comment_post_id
and b.maxdate = a.comment_date
WHERE comment_post_id = 8687