Содержание

,

Join / Sql / database

JOINS

author

id name
1 Вася
2 Коля
3 Петя

util

id author_id name
1 1 Вася Мега продукт
2 0 Крутая, но неизвестная утилита

SQL INNER / INNER JOIN - естественное или внутреннее соединение

Возвращает записи, у которых есть соответствующие записи в обеих таблицах.

-- Выводим все поля
SELECT *
-- Указываем таблицу авторов
FROM author
-- Соединяем с таблицей программ
INNER JOIN util
-- Указываем условие
ON author.id = util.author_id
id name id author_id name
1 Вася 1 1 Вася Мега продукт

LEFT JOIN

Возвращает все записи из левой таблицы и соответствующие записи из правой таблицы. Если соответствия нет, возвращает NULL для правой таблицы.

-- Выводим все поля
SELECT *
-- Указываем таблицу авторов
FROM author
-- Соединяем с таблицей программ
LEFT JOIN util
-- Указываем условие
ON author.id = util.author_id
id name id author_id name
1 Вася 1 1 Вася Мега продукт
2 Коля NULL NULL NULL
3 Петя NULL NULL NULL

RIGHT JOIN

Возвращает все записи из правой таблицы и соответствующие записи из левой таблицы. Если соответствия нет, возвращает NULL для левой таблицы.

-- Выводим все поля
SELECT *
-- Указываем таблицу авторов
FROM author
-- Соединяем с таблицей программ
RIGHT JOIN util
-- Указываем условие
ON author.id = util.author_id
id name id author_id name
1 Вася 1 1 Вася Мега продукт
NULL NULL 2 0 Крутая, но неизвестная утилита

LEFT OUTER JOIN - левое внешнее соединение

Возвращает все записи из левой таблицы и соответствующие записи из правой таблицы. Если соответствия нет, возвращает NULL для правой таблицы.

 

RIGHT OUTER JOIN - правое внешнее соединение

Возвращает все записи из правой таблицы и соответствующие записи из левой таблицы. Если соответствия нет, возвращает NULL для левой таблицы.

 

FULL JOIN - полное внешнее соединение

Возвращает все записи, когда есть соответствие в одной из таблиц.

 

CROSS JOIN - перекрестное или декартово соединение

Выполняет декартово произведение двух таблиц, объединяя каждую строку первой таблицы с каждой строкой второй таблицы.

 

UNIOUN