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)