私は3つのテーブルを持っています: テーブル 'A'にはそれぞれユニークなIDを持つ多数のイベントがあります。 テーブル 'B'にはテーブルAのIDと一致するカテゴリがありますが、各IDには複数の一致がある可能性があります。 テーブル 'C'は、テーブル 'B'のIDと一致するカテゴリ名を定義します。 カテゴリごとに繰り返される各イベントではなく、複数のカテゴリがまとめてリストされた一意のイベントを示す出力を得るにはどうすればよいですか?Mysqlは2つのテーブルの共通フィールドの一致する行を見つけ、フィールドを1つの行に結合します
Table A Table B Table C
id | event | date | id | catid catid | cat
1 swim 1-2-16 1 11 11 slow
2 swim 1-2-16 1 12 12 med
3 run 1-3-16 1 13 13 fast
4 bike 1-5-16 2 11
5 run 1-30-16 3 12
3 13
4 12
5 11
私は、このMySQLの文を持っている:
SELECT A.*, B.*, C.*
FROM A, B, C
WHERE A.id = B.id and B.catid = C.catid and DATE(date) BETWEEN "1-2-16" and "1-5-16
ORDER BY event, cat
問題は、このステートメントの出力は、各カテゴリのイベントを繰り返しています。出力には、各イベントに適用可能なすべてのカテゴリを出力行として一覧表示するようにしたいと思います。例えば、「1-2-16 slowで泳ぐ」の代わりに「1-2-16 slow、med、fastで泳ぐ」、「1-2-16 medで泳ぐ」、「1-2-16 fastで泳ぐ」などです。どうすればこれを達成できますか?
を使用する必要があります。 – user3520372