mysql的group_concat是个好东西

一个很常见的查询,一个用户有多个名字,这个时候我们一般会用个中间表,一边是用户表,一个是用户名表,一个是中间表。

需求: 一条sql查询出所有用户的全部用户名,用户名用逗号隔开

这个需求用group_concat就很好解决。
方式一:用子查询

select 
`user`.id,

(SELECT  group_concat(name.name)as name  from middle
LEFT JOIN name on name.id=middle.nameId
where middle.userId=`user`.id) as name 


 from `user` 





方式二 用表连接和group by

select `user`.id,group_concat(name.name)as name  from `user`
LEFT JOIN middle on middle.userId=`user`.id
LEFT JOIN name on name.id=middle.nameId 
GROUP BY `user`.id





猜你喜欢

转载自huangyunbin.iteye.com/blog/1913626