我有一张table如下:
tabl1 :
id name created_on
---- ------ ----------
1 red 2016
2 green 2017
3 blue 2018
并查询如下
select max(id),
name,
created_on
from tabl1
结果:
id name created_on
--- ---- ----------
3 red 2016
在这里,我得到的最大id是正确的,但名称和创建的值不是来自同一行。如何返回这样的结果:
id name created_on
--- ---- ----------
3 blue 2018
2条答案
按热度按时间xmakbtuz1#
我可以用
LIMIT
在这里:如果您使用的是mysql 8或更高版本,那么您还有另一个选择:
kfgdxczn2#
您应该使用具有max id的内部连接来检索正确的行
如果没有正确的group by子句,最新版本的mysql不允许aggreagtion函数的结果(不在agregation函数中,不在group by子句中)没有列名称声明,并且旧版本的结果不可预测