Топы
Что такое JOIN в SQL? Какие виды JOIN'ов вы знаете?
JOIN в SQL — это операция, которая позволяет объединять строки из двух и более таблиц по связанным столбцам (обычно по ключам). Основные виды: INNER JOIN, LEFT (OUTER) JOIN, RIGHT (OUTER) JOIN, FULL (OUTER) JOIN, CROSS JOIN, а также часто выделяют SELF JOIN как отдельный случай.
JOIN используется, когда данные логически связаны, но физически лежат в разных таблицах: мы объединяем строки по условию вида ON table1.key = table2.key. Итоговый набор данных строится в зависимости от типа соединения и того, что делать со строками, для которых нет пары во второй таблице.
Основные виды соединений:
INNER JOIN — внутреннее соединение: возвращает только те строки, для которых условие соединения выполняется в обеих таблицах (есть «совпавшая пара»).LEFT (OUTER) JOIN — левое внешнее соединение: возвращает все строки из левой (первой в запросе) таблицы, а для совпавших по условию строк из правой таблицы подставляет данные; если пары нет, в колонках правой таблицы будут NULL.RIGHT (OUTER) JOIN — правое внешнее соединение: симметрично левому, но гарантируется возврат всех строк из правой таблицы; для строк без пары в левой таблице значения её колонок будут NULL.FULL (OUTER) JOIN — полное внешнее соединение: возвращает все строки из обеих таблиц; для тех, у кого нет пары в другой таблице, соответствующие поля заполняются NULL.CROSS JOIN — перекрёстное соединение: декартово произведение, то есть каждая строка первой таблицы сочетается с каждой строкой второй таблицы, без условия соединения.SELF JOIN — самообъединение: соединение таблицы с самой собой (по сути обычный JOIN, где одна и та же таблица используется под разными алиасами).Отметьте свой прогресс