Basis van databases
De tabel Medewerker (MedewerkerNr, Naam, AfdelingID) heeft vier rijen met als waarden voor AfdelingID achtereenvolgens 10, 20, 10 en NULL. De tabel Afdeling (AfdelingID, Afdelingsnaam) heeft drie rijen met AfdelingID 10, 20 en 30. Hoeveel rijen geeft SELECT Medewerker.Naam, Afdeling.Afdelingsnaam FROM Medewerker INNER JOIN Afdeling ON Medewerker.AfdelingID = Afdeling.AfdelingID?
- A3 rijen
- B4 rijen
- C12 rijen
Antwoord en toelichting tonen
Antwoord: A. 3 rijen
Een INNER JOIN geeft alleen de combinaties van rijen terug die aan de ON-voorwaarde voldoen. De twee medewerkers met AfdelingID 10 worden gecombineerd met afdeling 10, en de ene medewerker met AfdelingID 20 met afdeling 20, dus het resultaat heeft drie rijen. De medewerker met AfdelingID NULL wordt aan geen enkele afdeling gekoppeld, omdat een vergelijking met NULL nooit waar is, en verdwijnt uit het resultaat. Ook afdeling 30, die geen medewerkers heeft, verschijnt niet. Vier rijen is het aantal bij een left outer join die elke rij van de tabel Medewerker behoudt (Medewerker LEFT OUTER JOIN Afdeling). Twaalf rijen is de CROSS JOIN (het cartesisch product), die zonder voorwaarde elke combinatie vormt: 4 × 3 = 12 rijen.