You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL LEFT JOIN需返回左表全量记录:GROUP BY致数据丢失求助

解决MySQL GROUP BY丢失举报记录的问题

问题根源

你当前查询里的GROUP BY crt.comment_id是核心问题——它会把同一个comment_id的所有举报记录归为一组,每组仅返回一条结果,所以comment_id=11的两条举报被合并成了一条,导致丢失了其中一条记录。

修正方案

直接移除GROUP BY子句,就能返回comment_report_table中的全部3条举报记录,同时保留原有的关联评论信息和排序逻辑:

SELECT crt.comment_id, 
       crt.user_id as report_user_id, 
       crt.reason as report_reason, 
       ct.id, 
       ct.comment, 
       ct.user_id, 
       ct.c_date
FROM $comment_report_table as crt 
LEFT JOIN $comments_table ct on crt.comment_id = ct.id 
ORDER BY ct.c_date DESC

补充说明

如果后续有聚合统计需求(比如统计单条评论的举报次数),才需要搭配GROUP BY和聚合函数(如COUNT())使用。但就当前需求而言,要保留所有举报记录,完全不需要分组操作。

内容的提问来源于stack exchange,提问作者Toniq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:27:05