SQL INNER JOIN

Mit der Operation INNER JOIN werden mehrere Tabellen verbunden, sofern zumindest ein Datenfeld in beiden Tabellen übereinstimmt. Bei zwei per INNER JOIN verbundenenTabellen werden nur die Datensätze übernommen, die in beiden Tabellen einen Treffer haben. Gibt es beispielsweise zu einem Kunden aus derTabelle tabKunden inder Tabelle tabRufnummern keine Rufnummer, wird dieser Kunde nicht in der Ergebnismenge ausgegeben. 

SQL inner join, left join und right joinInderTabelle tabKunden sind lediglich die Felder Kundennummer und Name enthalten.In derTabelle tabRufnummern sind die Felder Kundennummer und Telefon enthalten.Wenn nunals Ergebnis eine Tabelle mit den Daten KundenummerName und Telefonangestrebtwird, müssendie Tabellen tabKunden und tabRufnummern verbunden werden. Hierzu wird zunächst dieTabelle tabKunden genannt und perINNER JOIN mit der Tabelle tabRufnummernverbunden. DieVerknüpfung der Datensätzewird über die nach dem ON genannten Spalten  tabKunden.Kundennummer und tabRufnummern.Kundennummervorgenommen:

 

SELECT tabKunden.KundennummerNameTelefon
FROM tabKunden

INNER JOIN tabRufnummern
ON tabKunden.Kundennummer = tabRufnummern.Kundennummer

Wenn Informationen aus weiteren Tabellen angestrebt werden, können die dafür benötigten Tabellen zusätzlich verbunden werden. Hier im Beispiel wird noch die Tabelle tabAnschrift verbunden, um aus dieser die PLZ auszulesen:

 

SELECT tK.KundennummerNameTelefonPLZ
FROM tabKunden AS tK

INNER JOIN tabRufnummern
ON
 tK.Kundennummer = tabRufnummern.Kundennummer

INNER JOIN tabAnschrift AS tA
ON
 tK.Kundennummer = tA.Kundennummer

INNER JOIN-Operationen lassen sich in Unterabfragen verschachteln.
In der Tabelle  tabKunden gibt es nur die Felder Kundennummer und Name.
In der Tabelle tabRufnummern gibt es nur die Felder  Kundennummer und Telefonnummer.
In der Tabelle tabAdrn gibt es nur die Felder Telefonnummer und Adr,dasFeld Kundennummer gibt es hier leider nicht.


Wenn nun als Ergebnis eine Tabelle mit den Daten KundenummerNameAdr und Telefonnummer angestrebt wird, müssen die Tabellen tabKundentabRufnummern und tabAdrn verbunden werden:


SELECT tabKunden.KundennummerNameAdrTelefonnummer
FROM tabKunden
INNER JOIN (tabAdrn
   INNER JOIN tabRufnummern
   ON tabAdrn.Telefonnummer = tabRufnummern.Telefonnummer)
ON tabKunden.Kundennummer = tabRufnummern.Kundennummer