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