Grundlagen der Datenbanken
Eine Mitarbeitertabelle (MitarbeiterNr, Name, AbteilungsID) hat 4 Zeilen mit den AbteilungsID-Werten 10, 20, 10 und NULL in dieser Reihenfolge. Eine Abteilungstabelle (AbteilungsID, Abteilungsname) hat 3 Zeilen mit AbteilungsID 10, 20 und 30. Wie viele Zeilen liefert SELECT Mitarbeiter.Name, Abteilung.Abteilungsname FROM Mitarbeiter INNER JOIN Abteilung ON Mitarbeiter.AbteilungsID = Abteilung.AbteilungsID?
- A3 Zeilen
- B4 Zeilen
- C12 Zeilen
Antwort und Erläuterung anzeigen
Antwort: A. 3 Zeilen
Ein INNER JOIN liefert nur die Kombinationen von Zeilen, die die ON-Bedingung erfüllen. Die zwei Mitarbeiter mit AbteilungsID 10 werden mit Abteilung 10 kombiniert und der eine Mitarbeiter mit AbteilungsID 20 mit Abteilung 20, das Ergebnis hat also 3 Zeilen. Der Mitarbeiter mit AbteilungsID NULL wird mit keiner Abteilung verbunden, weil ein Vergleich mit NULL nie wahr ist, und fehlt im Ergebnis. Auch Abteilung 30 ohne Mitarbeiter erscheint nicht. 4 Zeilen ist die Anzahl bei einem Left Outer Join, der jede Zeile der Mitarbeitertabelle behält (Mitarbeiter LEFT OUTER JOIN Abteilung). 12 Zeilen ist der CROSS JOIN (kartesisches Produkt), der ohne Bedingung jede Kombination bildet: 4 × 3 = 12 Zeilen.