Sobes.tech
Junior

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.