Sobes.tech
Junior

Wat is het verschil tussen INNER JOIN en OUTER JOIN?

sobes.tech AI

Antwoord van AI

INNER JOIN retourneert alleen de rijen die overeenkomsten hebben in beide tabellen volgens de join-voorwaarde. Als er geen overeenkomst is in een van de tabellen, wordt die rij niet in het resultaat opgenomen.

OUTER JOIN retourneert alle rijen uit één tabel en de overeenkomende uit de andere, en als er geen overeenkomsten zijn, worden de ontbrekende gegevens vervangen door NULL. Er zijn drie soorten OUTER JOIN:

  • LEFT OUTER JOIN — alle rijen uit de linker tabel + de overeenkomende uit de rechter;
  • RIGHT OUTER JOIN — alle rijen uit de rechter tabel + de overeenkomende uit de linker;
  • FULL OUTER JOIN — alle rijen uit beide tabellen, waar geen overeenkomsten zijn, NULL.

Voorbeeld:

SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- retourneert alleen werknemers die een afdeling hebben

SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- retourneert alle werknemers, zelfs als ze geen afdeling hebben (in de kolommen departments wordt NULL weergegeven)