Задать вопрос

Мysql запросом?

Вот случился такой случай, еслть таблица с пользователями:


таблица members
idname
1User1
2User2
3User3
4User4



пользователь может иметь несколько групп, есть таблица связей


таблица members_teams
idmember_idteam_id
111
212
322
433
531



Задача: Выбрать всех пользователей которые не состоят в группе, например team_id = 1


Сразу пришло решение
SELECT * FROM Members WHERE id NOT IN (SELECT id FROM members_teams WHERE team_id = 1)



Но мне мне кажется при больших количествах пользователей это совсем не годится, возможно есть какой то другой вариант для решения этой задачи.
  • Вопрос задан
  • 2639 просмотров
Подписаться 4 Оценить Комментировать
Ответ пользователя blare К ответам на вопрос (8)
blare
@blare
SELECT m.id 
FROM members m
LEFT JOIN members_teams mt ON m.id = mt.member_id and mt.team_id = 1
WHERE mt.team_id is null
Ответ написан