Middle
35
Какие виды JOIN существуют в SQL и чем отличаются left join, right join и inner join?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В SQL существуют несколько видов JOIN, которые позволяют объединять строки из двух таблиц по определённому условию:
- INNER JOIN — возвращает только те строки, у которых есть совпадения в обеих таблицах.
- LEFT JOIN (LEFT OUTER JOIN) — возвращает все строки из левой таблицы и совпадающие строки из правой. Если совпадений нет, в полях правой таблицы будут NULL.
- RIGHT JOIN (RIGHT OUTER JOIN) — наоборот, возвращает все строки из правой таблицы и совпадающие из левой, с NULL там, где совпадений нет.
Пример:
Таблица A:
| id | name |
|---|---|
| 1 | Alice |
| 2 | Bob |
Таблица B:
| id | city |
|---|---|
| 1 | London |
| 3 | Berlin |
- INNER JOIN по id вернёт только id=1 (Alice и London).
- LEFT JOIN вернёт:
- id=1 (Alice, London)
- id=2 (Bob, NULL)
- RIGHT JOIN вернёт:
- id=1 (Alice, London)
- id=3 (NULL, Berlin)
Таким образом, LEFT и RIGHT JOIN сохраняют все строки из одной из таблиц, дополняя их данными из другой, а INNER JOIN — только совпадающие.