table1、table2、table3の3つのテーブルがあります
他の2つのテーブルを左結合するtable1からselectクエリを作成します。選択には、table3から値を取得するgroup_concatがあります。特定の行を持つ行が存在しなくなるまで、すべてがうまく機能します。group_concatリストが空になります。代わりに、行が存在しないグループのgroup_concatの値をNULLに設定したいと思います。
私が言ったように、table3の値がtable2のすべての行に存在する場合、それは機能します。そうでない場合、group_concat全体が空になります。
私がこれまでに得たもののいくつかの「単純化された」コード:
SELECT
table1.table2Id,
table1.dateAdded,
IF(COUNT(table2.table3Id) = COUNT(*), GROUP_CONCAT(table2.table3Id), NULL) as group1,
IF(COUNT(table3.ext) = COUNT(*), GROUP_CONCAT(table3.ext), NULL) as group2
FROM table1
LEFT JOIN table2 ON
table2.id = table1.table2Id
LEFT JOIN table3 ON
table3.id = table2.table3Id