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