1
我有一個帶有導覽的數據庫(帶導遊的城市導覽)。我需要的是一個SQL查詢(對於MySQL 5.1.54數據庫),它最終會給我一個PHP數組,其中包含多個表中的信息。通過對前3個表執行查詢,然後在foreach循環中添加表4和表5中的信息,我就可以實現這一點。對mysql數據庫中的多個(一對多)表進行SQL查詢
但是,我需要使用查詢進行搜索/篩選(如:顯示所有預訂,其中夥伴ID爲9),所以我需要SQL來選擇相應的預訂。
- 必須包括沒有合作伙伴(表4)和/或指南(表5)的預訂。
- 結果中必須包含所有合作伙伴和指南(預訂可以有更多合作伙伴/指南)
- 表4和表5中的所有信息必須包含在內(如表4中的狀態)。
的簡化版本的數據庫:
表1:保留:
id id_client id_tour
1 22 6
2 23 5
表2:客戶端(一個預留有一個客戶端):
id name
22 John
23 William
表3:旅行團(一個預留具有一個遊)
id name
5 big tour
6 small tour
表4:合作伙伴(一個預約可以有多個合作伙伴):
id id_reservation id_partner_type id_partner status
34 1 9 16 1
35 1 9 17 0
表5:導向件(一個預約可以具有多個導遊):
id id_reservation id_guide
18 1 14
19 1 15
我試圖來解決這一問題,但我不僅僅是C沒有得到一個查詢來完成這項工作。我使用GROUP_CONCAT來獲取多個合作伙伴和指南ID。我擁有的最大問題是無法包含沒有合作伙伴和/或指南(如預訂2)的預訂。