左连接关联出多条数据的问题

左连接,只是保证左边的表的每条数据同存在,不会因为 不满足on后面的条件而被筛掉;
但是在满足条件的情况下,左边1条数,右边与之对应的有两条数据,查询出来的结果就会有两条数据;

​​​​​​mysql left join 多条记录 1:n 的处理方法 - 走看看

方法一:使用group by ,找出右表一条记录与主表关联

select * from article as a 
left join (select id, a_id, content from comment group by a_id) as c 
on c.a_id = a.id;

方法二:使用group by 和 min或max聚合函数,找出右表最新或最旧的一条记录与主表关联

select * from article as a 
left join (select * from comment where id in (select max(id) from comment group by a_id)) as c 
on c.a_id = a.id;

方法三:使用group_concat

select * from article as a
left join (select a_id, group_concat(concat(id, ',', content) order by id desc separator '_') from comment group by a_id) as c
on c.a_id = a.id;
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐