Sobes.tech
Middle

Jakie rodzaje JOINów istnieją w SQL i czym różnią się LEFT JOIN, RIGHT JOIN i INNER JOIN?

sobes.tech AI

Odpowiedź od AI

W SQL istnieje kilka rodzajów JOIN, które pozwalają łączyć wiersze z dwóch tabel na podstawie określonego warunku:

  • INNER JOIN — zwraca tylko te wiersze, które mają dopasowania w obu tabelach.
  • LEFT JOIN (LEFT OUTER JOIN) — zwraca wszystkie wiersze z lewej tabeli i dopasowane wiersze z prawej. Jeśli dopasowania nie ma, pola z prawej tabeli będą NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — odwrotnie, zwraca wszystkie wiersze z prawej tabeli i dopasowane z lewej, z NULL tam, gdzie dopasowania brak.

Przykład:

Tabela A:

id nazwa
1 Alice
2 Bob

Tabela B:

id miasto
1 Londyn
3 Berlin
  • INNER JOIN po id zwróci tylko id=1 (Alice i Londyn).
  • LEFT JOIN zwróci:
    • id=1 (Alice, Londyn)
    • id=2 (Bob, NULL)
  • RIGHT JOIN zwróci:
    • id=1 (Alice, Londyn)
    • id=3 (NULL, Berlin)

W ten sposób LEFT i RIGHT JOIN zachowują wszystkie wiersze z jednej z tabel, uzupełniając je danymi z drugiej, a INNER JOIN — tylko pasujące.