需求背景:
A表中一条数据对应B表中的多条,要查询A表中对应的B表中数据最新的那条
(在网上看到过很多种方案 其中最多是写的是直接筛选select MAX(B.id),如果B表中的主键id是按照自增生成的,有序,是可以用这种方式的
我这里写的是B表中的主键无序的情况下,怎么查找A表数据对应的B表中最新的那条
A B两表字段关键为 A.id=B.aid
话不多说
直接上sql
select * from A left join (select B.* from B where(B.create_time,B.aid) IN
(select MAX (create_time) create_time,aid from B group by aid) ) ba
on A.id=ba.aid
得到的数据就是A表对应的B表中多条数据创建时间最新的结果
这里是按照create_time去排序,实际情况要按照哪个字段排序就改成哪个字段