Sobes.tech
Junior

Kā atšķiras INNER JOIN no OUTER JOIN?

sobes.tech AI

Atbilde no AI

INNER JOIN atgriež tikai tās rindas, kurām ir atbilstības abās tabulās saskaņā ar savienošanas nosacījumu. Ja vienā no tabulām nav atbilstoša ieraksta, šī rinda netiks iekļauta rezultātā.

OUTER JOIN atgriež visas rindas no vienas tabulas un atbilstošās no otras, un, ja atbilstības nav, trūkstošās dati tiks aizpildīti ar NULL. Pastāv trīs OUTER JOIN veidi:

  • LEFT OUTER JOIN — visas kreisās tabulas rindas + atbilstošās no labās;
  • RIGHT OUTER JOIN — visas labās tabulas rindas + atbilstošās no kreisās;
  • FULL OUTER JOIN — visas abu tabulu rindas, kur nav atbilstības, NULL.

Piemērs:

SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- atgriezīs tikai darbiniekus, kuriem ir nodaļa

SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- atgriezīs visus darbiniekus, pat ja viņiem nav nodaļas (kolonnās departments būs NULL)