Sobes.tech
Junior — Middle

Czy możesz wyjaśnić różnice między wewnętrznym połączeniem a lewym połączeniem w SQL?

sobes.tech AI

Odpowiedź od AI

Inner Join (INNER JOIN) zwraca tylko te wiersze, które mają dopasowania w obu tabelach zgodnie z warunkiem łączenia. Jeśli w jednej z tabel nie ma odpowiedniego wpisu, taki wiersz nie pojawi się w wyniku.

Left Join (LEFT JOIN) zwraca wszystkie wiersze z lewej tabeli oraz odpowiadające im wiersze z prawej tabeli. Jeśli nie ma dopasowania, wartości z prawej tabeli będą NULL.

Przykład:

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

Zwróci tylko klientów, którzy mają zamówienia.

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

Zwróci wszystkich klientów, w tym tych bez zamówień (w tym przypadku order_id będzie NULL).