「GROUP_CONCAT」を2カラムに対して指定すると、思うような取得結果が取れない。結合の仕方がおかしい?
前提
mainテーブル
・idカラムの値が9のレコード1件(常に1件)
tableaテーブル
・m_idカラムの値が9のレコード5件(idカラムの値によって変動)
tablebテーブル
・m_idカラムの値が9のレコード1件(idカラムの値によって変動)
この時、「mainテーブル.idカラム」と「tableaテーブルm_idカラム」と「tablebテーブルm_idカラム」を結合してデータ取得したい
取得したい内容(idカラムの値は9)
・mainテーブル全カラム
・tableaテーブルcolaカラム5件分を連結した内容
・tablebテーブルcolbカラム1件分(を連結した内容)
うまくいかないSQL
・colbconcatの連結数がcolaconcatと同じになってしまう
SELECT
m.*,
GROUP_CONCAT(a.cola) AS colaconcat,
GROUP_CONCAT(b.colb) AS colbconcat,
FROM main AS m
LEFT JOIN tablea AS a ON (m.id = a.m_id)
LEFT JOIN tableb AS b ON (m.id = b.m_id)
WHERE m.id = 9
GROUP BY m.id
下記のような内容を期待しているけど
★,☆,■,□,●
▲
実際に取得される内容は
★,☆,■,□,●
▲,▲,▲,▲,▲