Как использовать оператор IN с подзапросом?
Оператор IN в SQL позволяет указать несколько значений в предложении WHERE, это может помочь вам легко проверить, соответствует ли выражение какому-либо значению в списке значений. Использование оператора IN снижает потребность в нескольких условиях ИЛИ в таких операторах, как SELECT, INSERT, UPDATE и DELETE.
Подзапросы:
SQL-запросы, в которых одно или несколько операторов SELECT вложены в предложение WHERE другого оператора SELECT, называются подзапросами. Первый оператор такого типа запроса называется внешним запросом , а внутренний запрос называется внутренним запросом . При выполнении таких запросов сначала будет оцениваться внутренний запрос, а внешний запрос получает значение внутреннего запроса.
Теперь мы создадим схему для нашей базы данных и назовем ее geeks для гиков. После этого мы создадим внутри нее таблицу с именем geeks_data и используем оператор IN с подзапросом.
Шаг 1: Создайте базу данных
Чтобы создать базу данных, нам нужно использовать оператор CREATE.
Запрос :
CREATE DATABASE geeksforgeeks;
Выход:
Шаг 2: Создайте таблицу внутри базы данных
На этом шаге мы создадим две таблицы geeks_data и geek_dept внутри базы данных geeks for geeks.
- Создание таблицы geeks_data:
Запрос :
CREATE TABLE geeks_data(id INT, first_name VARCHAR(255), last_name VARCHAR(255), dept VARCHAR(255), PRIMARY KEY(id));
- Создание таблицы geeks_dept:
Запрос:
CREATE TABLE geeks_dept(id INT, dept_name VARCHAR(255), PRIMARY KEY(id));
Шаг 3: Вставьте данные в таблицу
Чтобы вставить данные в базу данных, нам нужно использовать оператор INSERT. Сначала мы вставим его в таблицу geeks_data.
Запрос:
INSERT INTO geeks_data VALUES (1, "Chandan", "Mishra", "Mechanical"), (2, "Abhinav", "Singh", "Electronics"), (3, "Utkarsh", "Raghuvanshi", "Computer Science");
Выход:
Теперь вставим данные для таблицы geeks_dept.
INSERT INTO geeks_dept VALUES (1, "Computer Science"), (2, "Electronics"), (3, "Computer Science"), (4, "Mechanical");
Выход:
Шаг 4: Выполнение оператора IN в подзапросе
На этом этапе мы попытаемся узнать данные гиков из таблицы geeks_data, тех, кто из отдела информатики с помощью таблицы geeks_dept, используя подзапрос.
Запрос:
SELECT first_name, last_name FROM geeks_data WHERE dept IN (SELECT dept_name FROM geeks_dept WHERE id = 1);
Мы получим first_name и last_name гиков из отдела компьютерных наук.
Выход: