有两张表,
a表
id | name | habId |
---|
1 | 张三 | 1,2,3,4 |
1 | 李四 | 2,5 |
b表
id | name |
---|
1 | 打乒乓 |
2 | 打羽毛球 |
3 | 打蓝球 |
4 | 上网玩游戏 |
5 | 打牌 |
正常查询a表
select * from a
现在需求是:
id | 名称 | 爱好 |
---|
1 | 张三 | 打乒乓,打羽毛球,打篮球,上网 |
1 | 李四 | 打羽毛球,打牌 |
修改sql为
select
a.id,
a.name,
group_concat(b.name order by b.id)
from a
left join b on find_in_set(b.id,a.habId)
group by a.id;