先來幾個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為字符串的集合。