Sobes.tech
Senior

Jakie rodzaje JOIN znasz i czym się różnią?

sobes.tech AI

Odpowiedź od AI

Główne typy JOIN w SQL i ich różnice:

  • INNER JOIN — zwraca tylko te rekordy, które mają dopasowania w obu tabelach według warunku połączenia.

  • LEFT JOIN (LEFT OUTER JOIN) — zwraca wszystkie rekordy z lewej tabeli i dopasowane z prawej. Jeśli brak dopasowania, pola z prawej tabeli będą NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — zwraca wszystkie rekordy z prawej tabeli i dopasowane z lewej.

  • FULL JOIN (FULL OUTER JOIN) — zwraca wszystkie rekordy z obu tabel, dopasowane i niedopasowane, z NULL tam, gdzie danych brakuje.

  • CROSS JOIN — iloczyn kartezjański dwóch tabel, zwraca wszystkie możliwe kombinacje wierszy.

Przykład:

-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;

-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;

-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;

-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;

-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;

Wybór JOIN zależy od tego, jakie dane chcemy uzyskać i jak obsługiwać brakujące dopasowania.