SQL JOIN объединяет строки из двух или более таблиц на основе связанного столбца. Каждый тип отличается тем, как он обрабатывает совпадающие и несовпадающие строки.
INNER JOIN — Возвращает только строки с совпадающими значениями в обеих таблицах. Несовпадающие строки исключаются полностью.
LEFT JOIN (LEFT OUTER JOIN) — Возвращает все строки из левой таблицы. Для несовпадающих строк из правой таблицы отсутствующие столбцы заполняются NULL.
RIGHT JOIN (RIGHT OUTER JOIN) — Возвращает все строки из правой таблицы. Для несовпадающих строк из левой таблицы отсутствующие столбцы заполняются NULL.
FULL JOIN (FULL OUTER JOIN) — Возвращает все строки из обеих таблиц. Там, где совпадения нет ни с одной из сторон, отсутствующие столбцы заполняются NULL.
CROSS JOIN — Возвращает декартово произведение обеих таблиц — каждая строка из первой таблицы сопоставляется с каждой строкой второй. Условие соединения не требуется.
SELF JOIN — Таблица, объединённая сама с собой; обычно используется для представления иерархических или рекурсивных связей внутри одной таблицы.
INNER JOIN → NULLs не вводятся
LEFT JOIN → NULLs с правой стороны для несовпадающих строк
RIGHT JOIN → NULLs с левой стороны для несовпадающих строк
FULL JOIN → NULLs с обеих сторон для несовпадающих строк
CROSS JOIN → NULLs не вводятся
Выбор правильного типа JOIN зависит от того, нужны ли тебе все записи из одной или обеих таблиц, или только совпадающие записи. INNER JOIN — самый распространённый, а OUTER JOIN необходим, когда нужно сохранить несовпадающие строки.
INNER JOIN введёт NULL значения в результирующий набор, когда строка из левой таблицы не имеет соответствующей строки в правой таблице.
Новый — ещё не проверен сообществом
Вы