MySQL group_concat 方法的使用


表关系图:

需求:
我想要查询的数据结果是:
 
我们可以内连接:
select s.id,s.name,srt.typeId,  stt.name as TypeName from scenics as s
INNER JOIN(
select * from scenics_type
) srt on srt.scenicsId=s.id
INNER JOIN(
SELECT * from scenicstype where deleted=0
)stt on stt.id=srt.typeId
得到结果是:
显然我们需要分组,合并一下数据。
select s.id,s.name,srt.typeId,  stt.name as TypeName from scenics as s
INNER JOIN(
select * from scenics_type
) srt on srt.scenicsId=s.id
INNER JOIN(
SELECT * from scenicstype where deleted=0
)stt on stt.id=srt.typeId
GROUP BY(s.id)

 

得到结果是:

但是TypeName累加成我们想要的结果。
MySQL给我们一个好用的方法实现这个目标。group_concat
select s.id,s.name,srt.typeId,   group_concat(stt.name SEPARATOR ',' )  as TypeName from scenics as s
INNER JOIN(
select * from scenics_type
) srt on srt.scenicsId=s.id
INNER JOIN(
SELECT * from scenicstype where deleted=0
)stt on stt.id=srt.typeId
GROUP BY(s.id)
结果如图:
OK 大功告成!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM