Погружение в базы данных Oracle

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Купить книгу

SQL без слёз

Цель книги заключается в том, чтобы научить любого человека работать с реляционными базами данных и получать из них необходимую информацию посредством выполнения SQL-запросов.

Скачать книгу

 ›  ›  ›  › Оператор INNER JOIN для объединения таблиц в PostgreSQL

Оператор INNER JOIN для объединения таблиц в PostgreSQL

Что такое INNER JOIN / JOIN?

Оператор INNER JOIN или его ещё можно называть просто JOIN, предназначен для внутреннего объединения таблиц. При внутреннем объединении таблиц результатом запроса будут данные, которые полностью удовлетворяют условию в блоке ON.

Для наглядности, работа оператора INNER JOIN / JOIN представлена ниже на изображении. Заштрихованная область, это данные, которые соответствуют условию ON.

Оператор INNER JOIN для объединения таблиц в PostgreSQL

Синтаксис оператора INNER JOIN / JOIN

После ключевого слова INNER JOIN / JOIN необходимо указать имя таблицы, с которой нужно выполнить объединение, а в блоке ON указываются условия для объединения.

SELECT список_столбцов
FROM таблица_1
[INNER JOIN|JOIN] таблица_2
ON условие_для_объединения
WHERE условия_для_фильтрации;

Синтетические данные для работы

Для демонстрации работы оператора INNER JOIN потребуется создать тестовые таблицы и заполнить их данными. В таблице users хранится информация о пользователях, а в таблице city список городов.

-- создание таблицы users
CREATE TABLE users (
	id integer,
	last_name varchar(30),
	first_name varchar(30),
	city_id integer
);

INSERT INTO users(id, last_name, first_name, city_id)
VALUES (1, 'Никулина', 'Василиса', 2),
	   (2, 'Климов', 'Алексей', 3),
	   (3, 'Голубев', 'Максим', 6),
	   (4, 'Соколова', 'Дарья', 1);
COMMIT;

-- создание таблицы city
CREATE TABLE city (
	id integer,
	name varchar(30)
);

INSERT INTO city(id, name)
VALUES (1, 'Екатеринбург'),
	   (2, 'Москва'),
	   (3, 'Санкт-Петербург'),
	   (4, 'Хабаровск'),
	   (5, 'Самара'),
	   (6, 'Смоленск'),
	   (7, 'Казань');
COMMIT;

Практический пример

Необходимо объединить две таблицы users и city методом внутреннего объединения, а затем вывести для каждого пользователя название города, в котором он проживает. В блоке ON таблицы объединяются по идентификатору городов.

SELECT u.id,
	   u.last_name,
	   u.first_name,
	   c.name
FROM users u
INNER JOIN city c
ON c.id = u.city_id;

Выполняем запрос и получаем результат, в котором выведены только те строки, которые соответствуют условию объединения в блоке ON.

Результат работы INNER JOIN в PostgreSQL

Метки: , .

Записи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *