Sobes.tech
Middle
36

Какие виды JOIN существуют в SQL и чем отличаются left join, right join и inner join?

Companies where asked
ИннотехИннотех
ОстровокОстровок

Answer from AI

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 — только совпадающие.