В настоящее время я пытаюсь присоединиться к левой таблице таблицы слева, как показано ниже.У меня есть таблицы:
- учетные записи (id, vorname, nachname)
- projektkurse (id, account_id, projektwochen_id)
- projektkurs_einzel (id, projektkurse_id)
- projektkurs_einzel_zeiten (идентификатор, дата, смещение, projektkurs_einzel_id)
Теперь я хочу получить каждую учетную запись и количество раз, когда они имеют запись в projektkurs_einzel_zeiten, которая также должна быть уникальной.Таким образом, наличие одной и той же даты и смены несколько раз не считается несколькими записями.Результат также должен быть ограничен столбцом projektwochen_id из таблицы projektkurse.Этот столбец должен соответствовать определенному значению, например, 8. 8. 1013 *
Некоторые учетные записи не имеют записей в projektkurse, projektkurs_einzel и projektkurs_einzel_zeiten, вот почему моя первая мысль заключалась в использовании LEFT JOIN, например:
SELECT accounts.id, accounts.vorname, accounts.nachname, COUNT(DISTINCT projektkurs_einzel_zeiten.date, projektkurs_einzel_zeiten.shift) AS T
FROM accounts
LEFT JOIN projektkurse on accounts.id = projektkurse.creator_id
LEFT JOIN projektkurs_einzel on projektkurse.id = projektkurs_einzel.projektkurs_id
LEFT JOIN projektkurs_einzel_zeiten ON projektkurs_einzel.id = projektkurs_einzel_zeiten.projektkurs_einzel_id
WHERE projektkurse.projektwochen_id = 8
GROUP BY accounts.id
Этот запрос не дает именно то, что я хочу.Он возвращает только те учетные записи, которые имеют как минимум одну запись в projektkurs, даже если их нет в projektkurs_einzel и projektkurs_einzel_zeiten.Количество для них очевидно равно 0, но учетные записи, в которых нет записей в projektkurse, полностью игнорируются.Как я могу также показать учетные записи, которые не имеют записей в любой другой таблице с счетом 0, а?