Koje su razlike između LEFT JOIN i RIGHT JOIN u SQL?
sobes.tech АИ
Одговор од АИ
LEFT JOIN vraća sve redove iz lijeve (prve) tablice i odgovarajuće redove iz desne (druge) tablice. Ako nema podudaranja u desnoj tablici, rezultat sadrži NULL za stupce iz desne tablice.
RIGHT JOIN vraća sve redove iz desne (druge) tablice i odgovarajuće redove iz lijeve (prve) tablice. Ako nema podudaranja u lijevoj tablici, rezultat sadrži NULL za stupce iz lijeve tablice.
Glavna razlika je koja se tablica smatra "potpunom", tj. iz koje će tablice biti vraćeni svi redovi bez obzira na to postoje li podudaranja u drugoj tablici.
Primjer u SQL:
Tablica TablicaA:
| ID | VrijednostA |
|---|---|
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
Tablica TablicaB:
| ID | VrijednostB |
|---|---|
| 2 | B2 |
| 3 | B3 |
| 4 | B4 |
LEFT JOIN:
SELECT *
FROM TablicaA
LEFT JOIN TablicaB ON TablicaA.ID = TablicaB.ID;
Rezultat LEFT JOIN:
| ID (iz TablicaA) | VrijednostA | ID (iz TablicaB) | VrijednostB |
|---|---|---|---|
| 1 | A1 | NULL | NULL |
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
RIGHT JOIN:
SELECT *
FROM TablicaA
RIGHT JOIN TablicaB ON TablicaA.ID = TablicaB.ID;
Rezultat RIGHT JOIN:
| ID (iz TablicaA) | VrijednostA | ID (iz TablicaB) | VrijednostB |
|---|---|---|---|
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
| NULL | NULL | 4 | B4 |
LEFT JOIN i RIGHT JOIN često su zamjenjivi promjenom reda tablica u upitu: A LEFT JOIN B je ekvivalentno B RIGHT JOIN A.