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

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

Купить книгу

SQL без слёз

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

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

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

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

Что такое CROSS JOIN?

Оператор CROSS JOIN позволяет выполнить перекрёстное соединение (декартово произведение) двух таблиц. Результатом работы оператора CROSS JOIN будет объединение первой строки первой таблицы, с каждой строкой второй таблицы.

Для наглядности работы оператора CROSS JOIN, ниже находится изображение, на котором показано, как происходит перекрёстное соединение таблиц. Для удобства отображения результатов, они представлены в колоночном виде, а не в построчном.

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

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

Оператор CROSS JOIN в отличие от других методов соединения таблиц не требует никаких условий для объединения таблиц (ON). Существует несколько способов создать перекрёстное соединение.

-- 1 вариант: при помощи оператора CROSS JOIN
SELECT список_столбцов
FROM таблица_1
CROSS JOIN таблица_2;

-- 2 вариант: список таблиц в блоке FROM
SELECT список_столбцов
FROM таблица_1, таблица_2;

-- 3 вариант: при помощи оператора INNER JOIN
SELECT список_столбцов
FROM таблица_1
INNER JOIN таблица_2
ON TRUE;

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

Для демонстрации работы оператора CROSS JOIN потребуется создать тестовые таблицы и заполнить их данными.

-- создание таблицы table_1
create table table_1 (
	symbol varchar(20)
);

insert into table_1 (symbol)
values ('A'), ('B'), ('C');
commit;

-- создание таблицы table_2
create table table_2 (
	numbers integer
);

insert into table_2 (numbers)
values (1), (2), (3);
commit;

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

Выполним объединение таблиц table_1 и table_2 вышеперечисленными способами.

-- 1 вариант: при помощи оператора CROSS JOIN
select *
from table_1
cross join table_2;

-- 2 вариант: список таблиц в блоке FROM
select *
from table_1, table_2;

-- 3 вариант: при помощи оператора INNER JOIN
select *
from table_1
inner join table_2
on true;

После выполнения любого запроса, будет получен следующий результат.

Результат работы оператора CROSS JOIN в postgresql

Метки: , .

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

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

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