Sobes.tech
Junior

Kako radi SQL Join?

sobes.tech АИ

Одговор од АИ

SQL JOIN spaja redove iz dvije ili više tablica na temelju povezane stupca između njih. Postoji nekoliko vrsta JOIN:

  • INNER JOIN: Vraća redove gdje postoje podudaranja vrijednosti u obje tablice.
  • LEFT (OUTER) JOIN: Vraća sve redove s lijeve tablice i odgovarajuće redove s desne. Ako nema podudaranja u desnoj tablici, vraćaju se NULL vrijednosti za stupce desne tablice.
  • RIGHT (OUTER) JOIN: Vraća sve redove s desne tablice i odgovarajuće redove s lijeve. Ako nema podudaranja u lijevoj tablici, vraćaju se NULL vrijednosti za stupce lijeve tablice.
  • FULL (OUTER) JOIN: Vraća sve redove iz obje tablice. Ako nema podudaranja, vraćaju se NULL vrijednosti za odgovarajuće stupce.
  • CROSS JOIN: Vraća kartezijski produkt dviju tablica (svaki red iz prve tablice kombinira se s svakim redom iz druge).

Sintaksa je obično ovakva:

SELECT stupac1, stupac2...
FROM tablica1
JOIN tablica2 ON tablica1.zajednički_stupac = tablica2.zajednički_stupac;

Primjer INNER JOIN:

SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

Razmotrimo tablice customers i orders:

customers

customer_id customer_name
1 Alice
2 Bob
3 Charlie

orders

order_id customer_id amount
101 1 100
102 2 150
103 1 200
104 4 50

Rezultat INNER JOIN će biti:

order_id customer_name
101 Alice
102 Bob
103 Alice

Rezultat LEFT JOIN (orders LEFT JOIN customers):

order_id customer_id amount customer_name
101 1 100 Alice
102 2 150 Bob
103 1 200 Alice
104 4 50 NULL