MySQL Использование группировки с двумя связанными таблицами - просто - PullRequest
0 голосов
/ 06 февраля 2020

Я не могу заставить этот простой кусок кода работать, может кто-нибудь быстро помочь мне с этим?

enter image description here[My Code and The Question[![][1]

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Вам необходимо COUNT количество объектов, связанных с каждым Cottage:

SELECT c.Cottage_Name, COUNT(cf.Facility_ID) AS Num_Facilities
FROM Cottage c
LEFT JOIN Cottage_Facility cf ON cf.Cottage_ID = c.Cottage_ID
GROUP BY c.Cottage_Name

Обратите внимание, что вы должны использовать LEFT JOIN, чтобы получить 0 рассчитывать на любые коттеджи, которые не имеют каких-либо удобств.

0 голосов
/ 06 февраля 2020

Вам необходимо составное выражение для вычисления количества объектов на коттедж.

Также было бы неплохо добавить cottage_id к предложению group by, если два коттеджа имеют одинаковое имя.

Наконец, вы должны использовать современный явный объединения (с ключевым словом on) вместо неявных неявных объединений (это не меняет результаты вашего запроса, но это хорошая практика кодирования SQL).

select c.cottage_name, count(*) count_of_facilities
from cottage c
inner join cottage_facility cf on cf.cottage_id = c.cottage_id
group by c.cottage_id, c.cottage_name;
...