Увеличивает выходные данные в ширину (в отличии от операций UNION/UNION ALL)
Для примера будем использовать 2 таблицы table1 и table2:
INNER JOIN
Пример
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.a = t2.b
LEFT JOIN
Пример
SELECT *
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.a = t2.b
RIGHT JOIN
Пример
SELECT *
FROM Table1 t1
RIGHT JOIN Table2 t2 ON t1.a = t2.b
FULL JOIN
Пример
SELECT *
FROM Table1 t1
FULL JOIN Table2 t2 ON t1.a = t2.b
CROSS JOIN
Пример
SELECT *
FROM Table1 t1
CROSS JOIN Table2 t2
Частые вопросы на собеседовании
Какое максимальное и минимальное количество записей будет при каждом JOIN (INNER, LEFT, RIGHT, CROSS, FULL).
Существует 2 таблицы в обеих - N строк.
INNER: минимальное - 0 (все значения разные), максимальное - N*N (в первой и во второй таблице все записи одинаковые);
LEFT: минимальное - N (все значения разные), максимальное - N*N (в первой и во второй таблице все записи одинаковые);
RIGHT: минимальное - N (все значения разные), максимальное - N*N (в первой и во второй таблице все записи одинаковые);
CROSS: максимальное и минимальное количество - N*N (так как это декартово произведение);
FULL : минимальное количество - N (в случае, если одна строка уникальна в своей таблице, а вторая совпадает с первой таблицей), максимально - N*N (в первой и во второй таблице все записи одинаковые)
Статья будет дополняться. Рассмотри соединение 3 таблиц и подробнее распишу что означает каждый Джоин.
Существуют также : SELF JOIN, NATURAL JOIUN, CROSS APPLY JOIN, OUTER APPLY JOIN (Они используются реже)