Назад к вопросам
Middle
1
Какие виды JOIN знаете? Какие записи будут в результате того или иного JOIN для двух таблиц?
Компании, где спрашивали
Effective Technologies
Ответ от нейросети
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 — декартово произведение, каждая строка левой таблицы соединяется с каждой строкой правой.
Пример для двух таблиц A и B:
| A.id | A.val | B.id | B.val |
|---|---|---|---|
| 1 | a | 1 | x |
| 2 | b | NULL | NULL |
- INNER JOIN вернёт только строки с id=1.
- LEFT JOIN вернёт обе строки из A, для id=2 поля B будут NULL.
- RIGHT JOIN вернёт строки из B, если есть, и NULL для A, если нет совпадений.
- FULL JOIN вернёт все строки из A и B, заполняя NULL там, где нет совпадений.
- CROSS JOIN вернёт все возможные пары строк из A и B.