Вот случился такой случай, еслть таблица с пользователями:
таблица members
id | name |
1 | User1 |
2 | User2 |
3 | User3 |
4 | User4 |
пользователь может иметь несколько групп, есть таблица связей
таблица members_teams
id | member_id | team_id |
1 | 1 | 1 |
2 | 1 | 2 |
3 | 2 | 2 |
4 | 3 | 3 |
5 | 3 | 1 |
Задача: Выбрать всех пользователей которые не состоят в группе, например team_id = 1
Сразу пришло решение
SELECT * FROM Members WHERE id NOT IN (SELECT id FROM members_teams WHERE team_id = 1)
Но мне мне кажется при больших количествах пользователей это совсем не годится, возможно есть какой то другой вариант для решения этой задачи.