Вы также можете использовать EXCEPT
:
SELECT UserID
FROM Users
EXCEPT
SELECT UserID
FROM User_Groups
WHERE GroupID = '$_[0]'
EXCEPT
- версия вычитания множества для SQL. Какой из различных подходов (EXCEPT
, NOT IN
, ...) вы должны использовать, как обычно, зависит от ваших конкретных обстоятельств, того, что поддерживает ваша база данных, и какой из них лучше всего подходит для вас.
И Евгений у уже упомянул проблему с SQL-инъекцией в вашем коде, так что я просто рассмотрю ее.
Я ссылался на документацию PostgreSQL, хотя это не вопрос PostgreSQL, потому что документация PostgreSQL довольно хорошая. SQLite поддерживает EXCEPT
:
Оператор EXCEPT возвращает подмножество строк, возвращаемых левым SELECT, которые также не возвращаются правым SELECT. Повторяющиеся строки удаляются из результатов операторов INTERSECT и EXCEPT до возврата набора результатов.