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