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)的预订。