Junior — Middle
Wyjaśnij różnicę między INNER JOIN a OUTER JOIN w SQL i w jakich sytuacjach jest używany każdy z nich.
sobes.tech AI
Odpowiedź od AI
INNER JOIN zwraca tylko te wiersze, które mają dopasowania w obu tabelach zgodnie z warunkiem łączenia.
OUTER JOIN zwraca wszystkie wiersze z jednej tabeli oraz odpowiadające im wiersze z drugiej. Jeśli dopasowania nie ma, w miejscach brakujących danych pojawi się NULL.
Rodzaje OUTER JOIN:
- LEFT OUTER JOIN — wszystkie wiersze z lewej tabeli + dopasowane z prawej.
- RIGHT OUTER JOIN — wszystkie wiersze z prawej tabeli + dopasowane z lewej.
- FULL OUTER JOIN — wszystkie wiersze z obu tabel, z NULL tam, gdzie nie ma dopasowania.
Przykład użycia:
- INNER JOIN — gdy potrzebne są tylko powiązane dane, np. zamówienia z istniejącymi klientami.
- LEFT OUTER JOIN — gdy chcesz uzyskać wszystkich klientów, w tym tych bez zamówień.
Przykład SQL:
SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;
Ta zapytanie zwróci wszystkich klientów i ich zamówienia, jeśli istnieją, w przeciwnym razie NULL dla zamówień.