我有这个查询返回下面的截图(正确的)结果:两个(在我看来),相当于SQL查询返回不同的结果
SELECT owner_id, MAX(ctime) as post_time, aid
FROM `jul_cpg15x_pictures`
GROUP BY aid
ORDER BY aid DESC
但我需要在查询格式如下(因为我想要做一些事后连接):
SELECT * FROM
(SELECT owner_id, MAX(ctime) as post_time, aid
FROM `jul_cpg15x_pictures`
GROUP BY aid
ORDER BY aid DESC) q
该查询返回的结果不同(有些owner_ids不同):
这让我疯狂了几个小时,现在怎么样? 我再次检查ctime在表中是不同的,并且不会发生两次。但是,例如对于ctime 1410003221,肯定只有一个条目(具有owner_id = 8的条目)。
非常感谢您的帮助或提示。
OWNER_ID在您的SELECT列表中,但不在GROUP BY子句中,尽管在SELECT列表中使用了聚合函数。 – 2014-09-06 20:05:58
如果您选择一个未分组的列,您只需从该组中获得一个随机值。除MySQL以外的大多数数据库都会认为这个SQL是一个错误。 – Laurence 2014-09-06 20:06:10
您是否想要每个AID或每个OWNER_ID和AID组合的最高发布时间(ctime)? – 2014-09-06 20:07:57