Junior — Middle
Czy możesz wyjaśnić różnice między różnymi typami połączeń tabel w SQL?
sobes.tech AI
Odpowiedź od AI
W SQL istnieje kilka głównych typów połączeń (JOIN), które pozwalają łączyć dane z dwóch lub więcej tabel:
- INNER JOIN — zwraca tylko te wiersze, w których występuje dopasowanie w obu tabelach według warunku.
- LEFT JOIN (LEFT OUTER JOIN) — zwraca wszystkie wiersze z lewej tabeli i dopasowane wiersze z prawej; jeśli dopasowania nie ma, wartości z prawej będą NULL.
- RIGHT JOIN (RIGHT OUTER JOIN) — zwraca wszystkie wiersze z prawej tabeli i dopasowane z lewej.
- FULL JOIN (FULL OUTER JOIN) — zwraca wszystkie wiersze z obu tabel, wypełniając NULL tam, gdzie nie ma dopasowania.
- CROSS JOIN — iloczyn kartezjański dwóch tabel, zwraca wszystkie możliwe kombinacje wierszy.
Przykład INNER JOIN:
SELECT employees.name, departments.name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
Ta zapytanie zwróci imiona pracowników i nazwy ich działów tylko dla tych pracowników, którzy mają dział.