Как использовать оператор IN с подзапросом в SQL?
В этой статье мы увидим использование оператора IN с подзапросом в SQL. Оператор IN используется для сравнения значений столбца со списком значений. Список значений определяется после запроса IN в SQL.
Если мы не знаем точный список значений для сравнения, мы можем сгенерировать список значений с помощью запроса.
Синтаксис:
Без подзапроса:
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
с подзапросом
SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT statement);
Теперь для демонстрации выполните следующие шаги:
Шаг 1: Создайте базу данных
мы можем использовать следующую команду для создания базы данных с именем geeks.
Запрос:
CREATE DATABASE geeks;
Шаг 2: Используйте базу данных
Используйте приведенный ниже оператор SQL, чтобы переключить контекст базы данных на гиков:
USE geeks;
Шаг 3: Определение таблицы
У нас есть следующая demo_table в нашей компьютерной базе данных. В demo_table есть данные об учениках с указанием их возраста и полученных ими оценок.
Запрос:
CREATE TABLE demo_table( NAME VARCHAR(20), AGE int, GRADE VARCHAR(5));
Шаг 4: Вставьте данные в таблицу
Запрос:
INSERT INTO demo_table VALUES ("Romy",22, "A"), ("Roshini", 20, "A"), ("Akanksha", 22, "A"), ("Shalini",23,"B"), ("Sambhavi",21,"A"), ("Meenakshi",22,"C"), ("Nikhil",24,"B"), ("Manu",25,"B"), ("Rohit",24,"C"), ("Astha",23,"A"), ("Samiksha",23,"A");
Шаг 5. Просмотрите содержимое
Выполните приведенный ниже запрос, чтобы просмотреть содержимое таблицы.
SELECT * FROM demo_table;
Выход:
Шаг 6: Использование оператора In с подзапросом
Чтобы получить данные студентов, чье имя начинается с R.
Запрос:
SELECT * FROM demo_table WHERE NAME IN (SELECT NAME FROM demo_table WHERE NAME LIKE "R%") ;
Выход:
Получить данные студентов, чей возраст больше 22 лет.
Запрос:
SELECT * FROM demo_table WHERE AGE IN (SELECT AGE FROM demo_table WHERE AGE>22) ;
Выход: