Я написал этот оператор sql:
SELECT
e.id AS event_id, e.title, e.date, e.category, e.place, e.minAge, e.maxAge,
p.id, p.name, p.coor, p.nz,
a.user, a.event, COUNT(a.user) AS attending,
i.user_id, i.event_id
FROM events AS e
LEFT JOIN attendance a ON a.event = e.id
LEFT JOIN places p ON p.id = e.place
LEFT JOIN invited_friends i ON ( i.event_id = e.id ) AND ( i.user_id = 0 )
GROUP BY e.id
ORDER BY attending DESC
Этот оператор выбирает события из событий таблицы и объединяет некоторые таблицы.пока все хорошо.У меня есть еще одна таблица: invited_friends
.
event_id bigint(20)
user_id int(11)
owner tinyint(1)
В этой таблице хранятся идентификаторы пользователей, приглашенных на событие.
Проблема в том, что не каждое событие является частным, а не каждоеСобытие получило приглашенных друзей ... как я могу определить, является ли событие личным или нет, это столбец: категория в таблице событий, если = 4, то это личное событие.
Мое внутреннее объединение работает, но оно игнорирует все публичные мероприятия, потому что у них нет приглашенных друзей.
Как я могу это исправить?
Заранее спасибо.