这是我的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
的最后一行。
答案 0 :(得分:1)
实际上你的查询完全错了。您不能在SELECT子句中使用非聚合列。您按名称分组,SELECT子句中的所有其他列不按分组。 如果你没有设置ONLY_FULL_GROUP_BY选项,MySQL仍然会接受这个(错误的)查询,但它不会让它更糟。所以你应该做的是重写查询,以便它给你一个可预测的结果。有关详细信息,请参阅:http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode%5Fonly%5Ffull%5Fgroup%5Fby