Как использовать оператор IN с подзапросом?

Опубликовано: 1 Сентября, 2022

Оператор 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 гиков из отдела компьютерных наук.

Выход: