У меня есть 4 таблицы: CLIENT_SERVICE
, BOOKING
, BOOKING_PETS
, PETS
, в основном один clientService
может иметь много бронирований, а в одном бронировании может быть много домашних животных через таблицу BOOKING_PETS
.Поэтому я хочу узнать, как запросить CLIENT_SERVICE
записей и подсчитать общее количество домашних животных для каждой записи бронирования.
Например, если у меня есть 2 записи бронирования, одна с двумя связанными домашними животными, а другаяодин с 1 связанным домашним животным, тогда я ожидаю в ответе столбец с суммой домашних животных, что-то вроде этого:
-----------------------------------
serv_id | bookingCount | petCount |
-----------------------------------
1 | 2 | 3 |
-----------------------------------
2 | 1 | 2 |
-----------------------------------
Это мой фактический запрос:
SELECT
booking_id,
cliserv_id AS id,
COUNT(DISTINCT boopet_id) AS petCount
FROM CLIENT_SERVICE
LEFT OUTER JOIN BOOKING ON cliserv_id = booking_client_service_id
LEFT OUTER JOIN (
BOOKING_PETS INNER JOIN PET ON pet_id = boopet_pet_id
) ON booking_id = boopet_booking_id
GROUP BY cliserv_id, booking_id, boopet_id;