MySQL 合并连表查询同id多结果(GROUP_CONCAT的使用),需配合GROUP BY使用

1、商品表 goods

id title
1 奶茶
2 咖啡

 

 

 

 

2、门店表 store

id title
1 成都店
2 华阳店
3 高新店

 

 

 

 

 

3、关联表 goods_store

goods_id store_id
1 1
1 2
2 1
2 2
2 3

 

 

 

 

 

 

 

 

 

5、普通连表查询结果

SELECT 
g.*,
s.title as store_title
FROM goods as g
JOIN goods_store as gs ON g.id=gs.goods_id
JOIN store as s ON gs.store_id=s.id
id title store_title
1 奶茶 成都店
1 奶茶 华阳店
2 咖啡 成都店
2 咖啡 华阳店
2 咖啡 高新店

 

 

 

 

 

 

 

 

6、使用  GROUP_CONCAT  后

SELECT 
g.*,
GROUP_CONCAT(s.title) as store_title
FROM goods as g
JOIN goods_store as gs ON g.id=gs.goods_id
JOIN store as s ON gs.store_id=s.id
GROUP BY g.id
id title store_title
1 奶茶 成都店,华阳店
2 咖啡 成都店,华阳店,高新店
posted @ 2019-07-30 17:46  zhaoxlchn  阅读(1593)  评论(0编辑  收藏  举报