Подсчитать записи отношения столбцов в таблице со многими ко многим - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть 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;

1 Ответ

0 голосов
/ 25 сентября 2019

Вам нужно только

GROUP BY cliserv_id, booking_id

Если вы включите boopet_id, в каждой группе будет только 1 питомец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...