【发布时间】:2013-06-11 20:55:36
【问题描述】:
这是我的 SQL;
SELECT
cs.name,
ct.name AS type,
cr.date,
cr.hg_version,
cr.public,
cr.tag,
cr.reference,
cr.description
FROM changelog_systems cs
LEFT JOIN changelog_rows cr ON cr.changelog_system_id = cs.id
LEFT JOIN changelog_types ct ON ct.id = cr.type_id
GROUP BY name
ORDER BY cr.date ASC
问题是我的系统没有最新日期;相反,它只获取在GROUP BY 之后幸存的最后一行。
【问题讨论】:
-
既然没有进行任何聚合,为什么还要使用
GROUP BY? -
您应该标准化您的查询(按部分分组),我认为这会揭示这里不太清楚的问题。
-
您对
group by的使用在 SQL 中无效,并且将被所有其他 DBMS(如果配置正确,还有 MySQL)拒绝。阅读本文以了解为什么您会从“错误”查询中得到不一致的结果:rpbouman.blogspot.de/2007/05/debunking-group-by-myths.html 和 mysqlperformanceblog.com/2006/09/06/…
标签: mysql group-by sql-order-by left-join