У меня проблема с MySQL запросом, и я не могу ее решить.
Исходная ситуация следующая: у меня есть таблица с пользователями и таблица с группами. Обе таблицы связаны между собой многогранной (group_participant) таблицей.
Работает следующий запрос:
SELECT
id,
COUNT(participant.groupId) AS participantsCount
FROM
group
LEFT JOIN
group_participant participant
ON
participant.groupId = id
GROUP BY
id
Теперь я хочу расширить этот запрос фильтром, который возвращает только записи, в которых я являюсь участником, но подсчет участников не должен затронут.
Впоследствии должна быть возможность указать флаг в выборе, если пользователь является участником или нет
Это должно быть что-то вроде:
SELECT
id,
COUNT(participant.groupId) AS participantsCount,
IF(participant.userId = "87b67168-0d7d-46c5-9437-29f996b3d85d", 1, 0) AS isParticipant
FROM
group
LEFT JOIN
group_participant participant
ON
participant.groupId = id
WHERE
participant.userId = "87b67168-0d7d-46c5-9437-29f996b3d85d"
GROUP BY
id
Как я могу решить это?