名前と彼が登録したイベントの数を含む顧客のリストを出力したいと思います。
このような:
max (3)Sports,Food,Cinema
tom (2) Food, Sports
私はそれを働かせることができません。私はいつもこの結果を得ます:
max Sports
max Food
max Cinema
tom Food
tom Sports
私はほぼこのテーブルのセットアップを持っています:
+-----+-----------+-------+-----+
+ CID + Customer + misc..+ ... +
+-----+-----------+-------+-----+
+ 1 + max + abc + ... +
+-----+-----------+-------+-----+
+ 2 + tom + xyz + ... +
+-----+-----------+-------+-----+
+-----+------------+--------+---------+-----+
+ EID + RID + Event + misc... + ... +
+-----+------------+--------+---------+-----+
+ 1 + + Sports + misc... + ... +
+-----+------------+--------+---------+-----+
+ 2 + + food + misc... + ... +
+-----+------------+--------+---------+-----+
+ 3 + + cinema + misc... + ... +
+-----+------------+--------+---------+-----+
+ 4 + + Event + misc... + ... +
+-----+------------+--------+---------+-----+
+-----+-----+-----+
+ RID + EID + CID +
+-----+-----+-----+
+ 1 + 1 + 1 +
+-----+-----+-----+
+ 2 + 2 + 1 +
+-----+-----+-----+
+ 3 + 3 + 1 +
+-----+-----+-----+
+ 4 + 1 + 2 +
+-----+-----+-----+
+ 5 + 2 + 2 +
+-----+-----+-----+
GROUP_CONCAT() で試してみましたが、これはうまくいかないようです....
すべてのテーブルを結合しましたが、このタスクを解決するには 2 つのクエリが必要だと思います。
whileループで選択を試みましたが、これは非常に遅いです....
私はこれを試しました:
$sql1 = "SELECT et.Art, et.Kategorie, et.ID, et.Event AS Event1,
GROUP_CONCAT( loc.ORT ) AS ORT1
FROM ".DB_CUSTOMERS_TABLE." AS et
JOIN ".DB_RELATIONS_TABLE." AS rel
ON (et.id = rel.EID)
JOIN ".DB_EVENT_TABLE." AS loc
ON (loc.Location_ID = rel.Location_ID)
GROUP BY rel.EID
";
どうすればこの問題をうまく解決できるか、アイデアが必要です。
読むためのthx。混乱しないことを願っています。