私はツアー(ガイド付きのグループ都市ツアー)を持つデータベースを持っています。私が必要とするのは、最終的に複数のテーブルを組み合わせた情報を持つPHP配列を与えるSQLクエリ(mysql 5.1.54データベース用)です。私は最初の3つのテーブルだけを照会し、foreachループ内のテーブル4と5の情報を追加することでこれを達成することができます。mysqlデータベースの複数(1対多)テーブルのSQLクエリ
しかし、私は検索/フィルタリングのためにクエリを使用する必要があります(たとえば、パートナーがID 9を持つすべての予約を表示する)ので、対応する予約を選択するにはSQLが必要です。
- パートナー(表4)および/またはガイド(表5)の予約が含まれている必要があります。
- すべての情報が含まれている必要があります(表4のステータスなど)。
データベースの簡略化されたバージョン:
表1:予約:
id id_client id_tour
1 22 6
2 23 5
表2:クライアント(一方予約つのクライアントを有している):
id name
22 John
23 William
表3:パートナー(一方の予約が複数のパートナーを持つことができる):
id id_reservation id_partner_type id_partner status
34 1 9 16 1
35 1 9 17 0
表5:ツアー
id name
5 big tour
6 small tour
表4(一方の予約一件のツアーを有する)ガイド(1件の予約が持つことができ複数のガイド):
id id_reservation id_guide
18 1 14
19 1 15
私はこれを試してみましたが、私はちょうどcジョブを実行するクエリを取得しないでください。私はGROUP_CONCATを使用して複数のパートナーとガイドIDを取得しました。私が持っている最大の問題は、パートナーや予約のようなガイドがない予約を含めることができないことです。