SQL-запрос для фильтрации таблицы с использованием другой таблицы

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

В этой статье мы увидим, как отфильтровать таблицу, используя другую таблицу. Мы можем выполнить эту функцию, используя подзапрос вместо условия в предложении WHERE. Запрос внутри другого запроса называется подзапросом. Его также можно назвать вложенным запросом. Один код SQL может иметь один или несколько вложенных запросов.

Синтаксис:

SELECT * FROM table_name WHERE
column_name=( SELECT column_name FROM table_name);

Запрос, написанный после предложения WHERE, является подзапросом в приведенном выше синтаксисе.

Теперь для демонстрации выполните следующие шаги:

Шаг 1: Создайте базу данных

мы можем использовать следующую команду для создания базы данных с именем geeks.

Запрос:

CREATE DATABASE geeks;

Шаг 2 : Используйте базу данных

Используйте приведенный ниже оператор SQL, чтобы переключить контекст базы данных на гиков:

Запрос:

USE geeks;

Шаг 3: Определение таблицы

У нас есть две таблицы с именами «demo_table1» и «demo_table2» в нашей компьютерной базе данных.

Запрос (демо_таблица1):

CREATE TABLE demo_table1(
NAME VARCHAR(20),
AGE int,
CITY VARCHAR(10),
INCOME int);

Запрос (демо_таблица2):

CREATE TABLE demo_table2(
NAME VARCHAR(20),
AGE int,
INCOME int);

Шаг 4: Вставьте данные в таблицу

Запрос (демо_таблица1):

INSERT INTO demo_table1 VALUES
("Romy",23,"Delhi",400000),
("Pushkar",23,"Delhi",700000),
("Nikhil",24,"Punjab",350000),
("Rinkle",23,"Punjab",600000),
("Samiksha",23,"Banglore",800000),
("Ashtha",24,"Banglore",300000),
("Satish",30,"Patna",450000),
("Girish",30,"Patna",5500000),
("Ram", 20 , "Patna",650000),
("Raj", 12, "Delhi",380000);

Запрос (демо_таблица2):

INSERT INTO demo_table2 VALUES
("Fanny",25,600000 ),
("Prem", 30,450000),
("Preeti",21,250000 ),
("Samita",32,440000),
("Ozymandias",34,650000);

Шаг 5: Просмотрите содержимое таблицы.

Выполните приведенный ниже запрос, чтобы просмотреть содержимое таблицы.

Запрос:

SELECT * FROM demo_table1;

Выход:

Запрос:

SELECT * FROM demo_table2;

Выход:

Шаг 6. Отфильтруйте таблицу, используя другую таблицу

Для демонстрации мы будем фильтровать данные demo_table1, чей ДОХОД больше, чем максимальный ДОХОД в semo_table2.

Чтобы получить максимальную зарплату от demo_table2:

Запрос:

SELECT MAX(INCOME) FROM demo_table2;

Используемый выше запрос будет использоваться в качестве подзапроса для фильтрации demo_table1.

Окончательный запрос:

SELECT * FROM demo_table WHERE INCOME > (SELECT MAX(INCOME) FROM demo_table2);

Выход:

На изображении видно, что данные из demo_table1 отфильтровываются, если INCOME превышает 650000 (максимальное значение дохода в demo_table2).