0
我想我可能會試圖對我的代碼太狡猾:p 我試圖將2個表連在一起,一個連成一排,另一個連成幾個。但我只想爲第一個表格和另一個表格返回一行。所以我想用GROUP_CONCAT
改變我加入到一行,像這樣:在左連接中使用group_concat
col 1 || col 2 || col 3 (linked)
----------------------------------
23 || Data || data, data, data
再後來我可以打破這個了。
我認爲問題是,這隻有真正有效,如果你有東西要加入?如果我沒有加入行,那麼他們似乎被忽略了?如果我在子查詢中這樣做,它會返回null?
這是我的查詢
子查詢
SELECT * FROM wp_fishy_posts p
LEFT JOIN (SELECT GROUP_CONCAT(i.path,',') AS linked_images,l.postID as link_id
FROM wp_fishy_images i
LEFT JOIN wp_fishy_images_post_link l ON l.imageID=i.ID) AS l ON l.link_id=p.ID
WHERE p.post_type='image'
返回空當行結合?
SELECT GROUP_CONCAT(i.path,',') AS linked_images,p.*
FROM wp_fishy_posts p
(SELECT i.path,l.postID as link_id
FROM wp_fishy_images i
LEFT JOIN wp_fishy_images_post_link l ON l.imageID=i.ID) AS l ON l.link_id=p.ID
WHERE p.post_type='image'
不確定我在做什麼錯? :S預先感謝!
的GROUP_CONCAT通過使用一組,不一定與連接(雖然查詢可以包含一個連接) – DBug
如果你知道另外兩個表是1對於1,應該不需要子查詢。而且,和大多數聚合函數一樣,GROUP_CONCAT應該忽略空值,除非沒有處理非空值。 – Uueerdo