mysql查詢逗號,分隔的多個id連表查詢


先來幾個SQL看看效果

SELECT i.*,n.*
FROM i
LEFT JOIN n on FIND_IN_SET(n.id, i.n_id)
GROUP BY n.id
效果圖:

 

想把信息都放一行里面怎么辦呢?我們就要用到group_concat函數了

SELECT i.*,
GROUP_CONCAT(n.id) nid,
GROUP_CONCAT(n.name) name
FROM i
LEFT JOIN n on FIND_IN_SET(n.id, i.n_id)
GROUP BY i.id
效果圖:

 

簡單介紹下這兩個SQL函數
group_concat()
1、功能:將group by產生的同一個分組中的值連接起來,返回一個字符串結果。
2、語法:group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

find_in_set(str,strlist)
相當於 in 的升級版,其中str為要查詢的目標字符串, strlist為字符串的集合。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM