Назад к вопросам
Junior
68
questionbank

Какие существуют типы JOIN в SQL?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

INNER JOIN

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

LEFT JOIN (или LEFT OUTER JOIN)

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

RIGHT JOIN (или RIGHT OUTER JOIN)

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

FULL JOIN (или FULL OUTER JOIN)

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

CROSS JOIN

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

Пример:

-- INNER JOIN
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.table1_id;

-- LEFT JOIN
SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.table1_id;

-- RIGHT JOIN
SELECT *
FROM table1
RIGHT JOIN table2 ON table1.id = table2.table1_id;

-- FULL JOIN
SELECT *
FROM table1
FULL JOIN table2 ON table1.id = table2.table1_id;

-- CROSS JOIN
SELECT *
FROM table1
CROSS JOIN table2;