INTERSECT

Последнее обновление: 30.11.2021

Оператор INTERSECT позволяет найти общие строки для двух выборок, то есть данный оператор выполняет операцию пересечения множеств. Для его использования применяется следующий формальный синтаксис:

SELECT_выражение1
INTERSECT SELECT_выражение2

Для примера возьмем таблицы из прошлой темы:

DROP TABLE IF EXISTS clients;
DROP TABLE IF EXISTS employees;

CREATE TABLE clients
(
	id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER,
	account_sum INTEGER NOT NULL
);
CREATE TABLE employees
(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER
);
 
INSERT INTO clients(name, age, account_sum) 
VALUES
('Tom', 37, 4000), ('Sam', 25, 3000), ('Mark', 29, 3500),
('Bob', 41, 2500), ('Adam', 28, 2900), ('Tim', 34, 4100);
 
INSERT INTO employees(name, age)
VALUES ('Tom', 37), ('Nick', 25), ('Mark', 29), ('Bob', 41), ('Alice', 31);

В таблице clients хранятся все клиенты банка, а в таблице employees - все его сотрудники. Но сотрудники могут быть одновременно и клиентами банка, поэтому их данные могут храниться сразу в двух таблицах. Найдем всех сотрудников банка, которые одновременно являются его клиентами. То есть нам надо найти общие элементы двух выборок:

SELECT name, age
FROM employees
INTERSECT SELECT name, age 
FROM clients;
Пересечение множеств и оператор INTERSECT в SQLite
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850