Я хочу подсчитать все записи в таблице участия для событий, в которых либо нет записи для пользователя, либо если явный пользователь не имеет записи для события.
Пример: у меня 13 событий и 2 пользователя.
Пользователь A (который я использую для запроса) участвовал в двух событиях (событие 1 и событие 2). Пользователь B также принял участие в двух мероприятиях (событие 2 и событие 3). Никто не участвовал ни в одном из других событий.
Если я запрашиваю с WHERE event.userId = "User A"
, я получаю правильный счет 2
Если я запрашиваю WHERE event.userId IS NULL
, получаю ли я правильный счет 10
Но если я запрашиваю WHERE event.userId IS NULL OR event.userId != "User A"
Я получаю счет 13 (но он должен быть 11)
SELECT
COUNT(DISTINCT event.id) AS count
FROM
event
LEFT JOIN
event_participation participation ON participation.eventId=event.id
###
# WITH USER
###
# With this where clause I will get the correct count with the user
#WHERE participation.userId = "de9d0de5-5b2f-4108-8df7-6b89ec539679"
###
# WITHOUT USER
###
# Tried participation.userId != "de9d0de5-5b2f-4108-8df7-6b89ec539679" for ??? after OR, but this is not correct
#WHERE participation.userId IS NULL OR ???
Решение должно быть результатом одного счета для всех записей, как это:
Как мне этого добиться?