Junior
Czym różni się INNER JOIN od OUTER JOIN?
sobes.tech AI
Odpowiedź od AI
INNER JOIN zwraca tylko te wiersze, które mają dopasowania w obu tabelach zgodnie z warunkiem połączenia. Jeśli w jednej z tabel nie ma odpowiedniego wpisu, ten wiersz nie pojawi się w wyniku.
OUTER JOIN zwraca wszystkie wiersze z jednej tabeli i odpowiadające im z drugiej, a jeśli dopasowania nie ma, w miejscach brakujących danych pojawi się NULL. Istnieją trzy 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 obu tabel, tam gdzie nie ma dopasowania, NULL.
Przykład:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- zwróci tylko pracowników, którzy mają dział
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- zwróci wszystkich pracowników, nawet jeśli nie mają działu (w kolumnach departments będzie NULL)