Sobes.tech
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ń.