Рефакторинг Sql-запроса (Postgresql)
Всем доброго дня! Вопрос следующий: Имеются 3 таблицы:
| Users |
|---|
| id |
| name |
| Shops |
|---|
| id |
| Users_Shops |
|---|
| user_id |
| shop_id |
Отношения между таблицами Users и Shops многие-ко-многим через таблицу Users_Shops
Например, в таблице Shops - 5 магазинов, с id 1, 2, 3, 4, 5. Пользователь добавил в свой список магазины с id 2, 3
Как получить id магазинов, которых нет в списке пользователя?
Сейчас использую такой sql:
SELECT * FROM Shops WHERE id != (SELECT shop_id From Users_Shops WHERE user_id = $1)
Это работает, но получается я делаю 2 запроса в БД, можно ли как-то обойтись одним?
Спасибо за Ваши ответы!