У меня есть база с турами (групповые экскурсии по городу с гидом).Мне нужен SQL-запрос (для базы данных mysql 5.1.54), который в конечном итоге даст мне массив PHP с информацией из нескольких таблиц вместе.Я могу сделать это, выполнив запрос только для первых 3 таблиц, а затем добавив информацию в таблицы 4 и 5. в цикл foreach.
Но мне нужно использовать запрос для поиска / фильтрации(например: показать все бронирования, где у партнера есть идентификатор 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
Я пытался решить эту проблему, но просто не могу получить запрос, выполняющий эту работу.Я использовал GROUP_CONCAT, чтобы получить несколько партнеров и идентификаторы руководства.Самая большая проблема, с которой я столкнулся, - это невозможность включить бронирование, в котором нет партнеров и / или руководств, например, бронирование 2.