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)