Inner Join


Inner Join = Equivalent Join

Verbindet Datensätze aus zwei Tabellen, sobald ein gemeinsames Feld dieselben Werte enthält.

 

Beispiel mit den zwei Tabellen “Mitarbeiter” und “Projekte”:

Das SQL-Statement

SELECT * FROM Mitarbeiter INNER JOIN Projekte ON Mitarbeiter.Nachname = Projekte.Nachname       (SQL92)

SELECT * FROM Mitarbeiter, Projekte WHERE Mitarbeiter.Nachname = Projekte.Nachname       (vor SQL92 häufig benutzt)

vergleicht auf übereinstimmente Nachnamen (ON ...) und liefert als Ergebnis

 

Mitarbeiter.
Nachname
Mitarbeiter.
Vorname
Geburtsdatum Projekt Projekte.
Nachname
Projekte.
Vorname
Huber Karl 16.12.1964 Neubau Huber Anna
Trunstein Helga 30.7.1956 Werbung Trunstein Helga

Beachten Sie:
Da nur der Nachname verglichen wurde, tauchen in der ersten Zeile zwei verschiedene Personen auf (Huber Karl und Huber Anna). Natürlich kann auch auf Vor- und Nachnamen verglichen werden:

SELECT * FROM Mitarbeiter INNER JOIN Projekte ON (Mitarbeiter.Nachname = Projekte.Nachname AND Mitarbeiter.Vorname = Projekte.Vorname)

In der Praxis wird man bei einem Inner Join nicht alle, sondern nur ausgewählte Spalten anzeigen lassen. Das SQL-Statement

SELECT Mitarbeiter.*, Projekte.Projekt FROM Mitarbeiter INNER JOIN Projekte ON (Mitarbeiter.Nachname = Projekte.Nachname AND Mitarbeiter.Vorname = Projekte.Vorname)

liefert z. B.:

 

Nachname Vorname Geburtsdatum Projekt
Trunstein Helga 30.7.1956 Werbung

Dieser Join wird als Natural Join bezeichnet (s. u.).

Wird bei einem SQL-Statement nur JOIN statt INNER JOIN angegeben, wird meist ebenfalls ein Inner Join ausgeführt.