У меня есть два стола (игрок и группа) с отношением многие ко многим и соединительная таблица (player_group):
Стол «игрок»

Таблица "группа"

и соединительная таблица:
Таблица "player_group"

Игрок может быть частью многих групп, и в группе может быть много игроков.Пользователь также может быть администратором группы, представленным флагом "flg_admin".
Я хочу создать запрос, который говорит мне, для конкретного игрока (скажем, player1 с id = 27):
- Название групп, к которым принадлежит игрок;
- Количество игроков в каждой из групп, к которым принадлежит игрок;
- Если игрок является администраторомкаждая группа.
Таким образом, для игрока1 (ID = 27) результат будет:
|group_name|no. members|flg_admin|
----------------------------------
|GROUP A | 2 | 1|
|GROUP B | 3 | 0|
Я пробовал следующее:
SELECT g.name, COUNT(x.id_player) as num_players, x.flg_admin
FROM player_group x
JOIN group g ON x.id_group=g.id
WHERE id_group IN (
SELECT
id_group
FROM player_group
WHERE id_player=27)
GROUP BY id_group;
Однакос помощью этого запроса я получаю следующий результат:
|group_name|no. members|flg_admin|
----------------------------------
|GROUP A | 2 | 1|
|GROUP B | 3 | 1|
flg_admin установлен как 1 для ГРУППЫ B, но, как вы можете видеть на изображениях выше, этот игрок не является администратором ГРУППЫ B. Я былпытаясь получить это право часами, но безрезультатно, и я исчерпал свои возможности, любая помощь по этому вопросу будет принята с благодарностью.