我有一个表格如下:
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,但名称和 created_on 值不在同一行。我怎样才能返回这样的结果:
id name created_on
--- ---- ----------
3 blue 2018
最佳答案
您应该使用最大 id 的内部连接来检索正确的行
select * from tabl1
inner join (
select max(id) max_id
from tabl1
) t on t.max_id = tabl1.id
没有适当的 group by 子句,聚合函数的结果没有声明列名,不在聚合函数中,在 group by 子句中对于最新版本的 mysql 是不允许的,并且结果对于旧版本是不可预测的版本
关于Mysql select row of max id 返回错误数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53941625/