Sobes.tech
Back to questions
Junior — Middle
72

Можно ли перечислить основные типы соединений таблиц в SQL и объяснить их различия?

Companies where asked
OkkoOkko
Страна Девелопмент
Т-БанкТ-Банк
Вкусно и точкаВкусно и точка

Answer from AI

sobes.tech AI

Основные типы соединений (JOIN) в SQL и их различия:

  • INNER JOIN — возвращает только те строки, у которых есть совпадения в обеих таблицах по условию соединения.

  • LEFT JOIN (LEFT OUTER JOIN) — возвращает все строки из левой таблицы и совпадающие строки из правой. Если совпадений нет, в столбцах правой таблицы будут NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — наоборот, возвращает все строки из правой таблицы и совпадающие из левой.

  • FULL JOIN (FULL OUTER JOIN) — возвращает все строки из обеих таблиц, совпадающие и не совпадающие, с NULL там, где нет соответствия.

  • CROSS JOIN — декартово произведение двух таблиц, возвращает все возможные комбинации строк.

Пример:

SELECT * FROM A INNER JOIN B ON A.id = B.a_id;
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;

Таким образом, выбор типа JOIN зависит от того, какие данные вы хотите получить: только совпадающие, или все из одной таблицы с возможными NULL из другой.