. Мне очень помогли присоединиться к таблице и попытаться перейти на следующий уровень. Ниже приведен SQL из справки, но с добавлением строки выбора, начинающейся с COUNT, внутреннего соединения с таблицей получателей и группы By.SQL Outer Присоединиться к группе Inner. Заполненные результаты.
SELECT
Event.EventID AS EventID,
Event.EventDate AS EventDateUTC,
Participant2.ParticipantID AS AwayID,
Participant1.ParticipantID AS HostID,
COUNT(Recipient.ChallengeID) AS AllChallenges
FROM Event
INNER JOIN Matchup Matchup1
ON (Event.EventID = Matchup1.EventID)
INNER JOIN Matchup Matchup2
ON (Event.EventID = Matchup2.EventID)
INNER JOIN Participant Participant1
ON (Matchup1.Host = 1
AND Matchup1.ParticipantID = Participant1.ParticipantID)
INNER JOIN Participant Participant2
ON (Matchup2.Host != 1
AND Matchup2.ParticipantID = Participant2.ParticipantID)
INNER JOIN Recipient
ON (Event.EventID = Recipient.EventID)
WHERE Event.CategoryID = 1
AND Event.Resolved = 0
AND Event.Type = 1
GROUP BY Recipient.ChallengeID
ORDER BY EventDateUTC ASC
Моя цель - подсчитать, сколько строк в таблице получателей соответствует EventID в событии. Этот код отлично работает , за исключением, что также я хочу получить результаты, в которых есть 0 соответствующих строк в Recipient. Я хочу 15 строк (= количество событий), но я получаю 2 строки, один со счетом 1 и один со счетом 2 (что подходит для внутреннего соединения, так как в таблице получателей есть три строки, одна для одного EventID и два для другого EventID).
Я думал, что либо LEFT join, либо соединение OUTER было тем, что я искал, но я знаю, что я не совсем понимаю, как эти таблицы фактически соединяются. LEFT join дает мне еще одну строку с 0, которая является EventID 1 (первая вещь в таблице), но это все. Ошибки сообщают мне, что я не могу просто изменить, что INNER присоединяется к OUTER. Я попробовал скобки и некоторые подзапросы и такие, но не могу заставить их работать.
Ах! Таким образом, группируя другие поля, в случаях, когда может быть не совпадение, строки все равно вытягиваются, не так ли? Удивительно, спасибо! –