Sobes.tech
Junior — Middle

Čime se razlikuju tipovi spojeva INNER i LEFT JOIN prilikom rada sa tabelama u SQL-u?

sobes.tech АИ

Одговор од АИ

INNER JOIN vraća samo one redove koji imaju podudarnosti u obe tabele prema uslovu spajanja. Ako u jednoj od tabela nema odgovarajući zapis, takav red neće biti uključen u rezultat.

LEFT JOIN (ili LEFT OUTER JOIN) vraća sve redove iz leve tabele i odgovarajuće redove iz desne tabele. Ako za red iz leve tabele nema podudarnosti u desnoj, u rezultatu će biti vrednosti iz leve tabele i NULL za desnu.

Primer:

SELECT a.id, a.name, b.order_date
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;

-- vraća samo klijente sa porudžbinama

SELECT a.id, a.name, b.order_date
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;

-- vraća sve klijente, uključujući one bez porudžbina (order_date će biti NULL)
Čime se razlikuju tipovi spojeva INNER i LEFT JOIN… - sobes.tech