mysql leftjoin只取一条的方法

根据时间匹配,需要找到关联的记录表里, 在主表时间之前的第一条记录

查了下百度,有的根据leftjoin子查询里面row_number做的. 但是leftjoin的子查询不能引用其他表

最后还是查谷歌找到了解决办法

https://stackoverflow.com/questions/15626493/left-join-only-first-row

把关联表CreateTime在主表StartTime后面的第一条, leftjoin到主表后边: 

SELECT zb.StartTime,glb.CreateTime FROM 主表 zb
left join 关联表 glb on glb.ID=(
        select ID from 关联表 t where t.CreateTime<zb.StartTime
        order by t.CreateTime desc limit 1
) ORDER BY 主表.StartTime

猜你喜欢

转载自blog.csdn.net/u012452555/article/details/89847426