Оператор NOT IN в SQL: описание, использование и примеры
"Not in SQL" - это условие, которое позволяет выбирать записи из таблицы, которых нет в другой таблице. Таким образом, можно выбрать записи из одной таблицы, которые не связаны с определенными значениями в другой таблице.
Пример использования оператора "not in" в SQL:
Допустим, у нас есть две таблицы - "users" и "orders". Таблица "users" содержит информацию о пользователях, а таблица "orders" содержит информацию о заказах пользователей. Поле "user_id" связывает обе таблицы.
Таблица "users":
| user_id | name | age | email |
| ------- | ---- | --- | -------------|
| 1 | John | 35 | john@mail.com|
| 2 | Anna | 28 | anna@mail.com|
| 3 | Jack | 42 | jack@mail.com|
Таблица "orders":
| order_id | user_id | date |
| -------- | ------- | ---------- |
| 101 | 1 | 2021-05-01 |
| 102 | 2 | 2021-05-05 |
| 103 | 1 | 2021-05-10 |
| 104 | 3 | 2021-05-12 |
Если мы хотим выбрать всех пользователей, которые не делали заказов, мы можем использовать оператор "not in":
SELECT * FROM users WHERE user_id not in (SELECT user_id FROM orders);
Результатом будет таблица:
| user_id | name | age | email |
| ------- | ---- | --- | -------------|
| 2 | Anna | 28 | anna@mail.com|
В данном примере мы выбираем всех пользователей из таблицы "users", у которых нет соответствующих записей в таблице "orders". Оператор "not in" используется для ограничения выборки записей соответствующих заданному условию.
Стандартный синтаксис оператора "not in" в SQL:
SELECT * FROM table1 WHERE column1 not in (SELECT column2 FROM table2);
Где:
- table1 - таблица, из которой выбираются записи.
- column1 - поле в таблице table1.
- table2 - таблица, в которой ищутся значения для ограничения выборки в таблице table1.
- column2 - поле в таблице table2, с помощью которого связываются таблицы и ограничивается выборка.