Sobes.tech
Middle

Кои видове JOIN съществуват в SQL и как се различават LEFT JOIN, RIGHT JOIN и INNER JOIN?

sobes.tech AI

Отговор от AI

В SQL има няколко вида JOIN, които позволяват обединяване на редове от две таблици според определено условие:

  • INNER JOIN — връща само редовете, които имат съвпадения и в двете таблици.
  • LEFT JOIN (LEFT OUTER JOIN) — връща всички редове от лявата таблица и съвпадащите редове от дясната. Ако няма съвпадение, полетата на дясната таблица ще бъдат NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — обратно, връща всички редове от дясната таблица и съвпадащите от лявата, с NULL там, където няма съвпадение.

Пример:

Таблица A:

id име
1 Alice
2 Bob

Таблица B:

id град
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 — само съвпадащите.