Relationale Datenbanken
Grundoperationen auf Tabellen

Informatik Hartmut Härtl
Johann Penon

Join

JOIN (VERBUND) Zusammenziehen der Informationen aus verschiedenen Tabellen

Der einfachste Verbund ist ein sogenannter "CROSS JOIN" bei dem das Ergebnis aus dem Kreuzprodukt der beteiligten Tabellen besteht. z.B.:

SELECT *
FROM Artikel, Lieferanten

Es gibt nur sehr, sehr wenige sinnvolle Anwendungen des "CROSS JOIN". Meistens entspringt dieser Join einen falschen Umsetzung einer Aufgabenstellung.

Der "CROSS JOIN" liefert als Ergebnis Kreuzprodukt der beteiligten Tabellen, also jede Zeile der beteiligten Tabelle wird mit jede Zeile der anderen Tabelle verknüpft. Das führt zu sehr großen Datenmengen und kann schon mal einen Server in die Knie zwingen.

Es ist deshalb notwendig das Kreuzprodukt auf eine bestimmte Teilmenge einzugrenzen.

Aufgabe:

Erstellen Sie eine Artikelliste mit ArtNr, Artikelbezeichnung und Name und Ort des jeweiligen Lieferanten.

Artikel
ArtNr Bezeichnung Bestand Preis StammLief
100 Bohrer 100 4,85 4711
101 Pinsel 210 7,60 3299
103 Hammer 17 8,30 4711
105 Zange 25 24,50 4711
110 Kelle 9 16,80 3000
111 Gips 200 9,60 2000
112 Zement 180 10,40 2000

pfeil

SELECT ArtNr, Bezeichnung, Name, Ort
FROM Artikel, Lieferanten
WHERE Artikel.StammLief = Lieferanten.LiefNr

Lieferanten
LiefNr Name Ort ...
2000 Lederer AG Berlin
2300 Teufel & Co Potsdam
3000 Auf & Ab KG Bernau
3299 Trims OHG Berlin
4700 Bert & Kage Berlin
4711 Kugler GmbH Kremmen
4800 Aal & Söhne Potsdam

pfeil

SELECT ArtNr, Bezeichnung, Name, Ort
FROM Artikel INNER JOIN Lieferanten
ON Artikel.StammLief = Lieferanten.LiefNr

 

Beide SQL-Abfragen sind gleichwertig.

ArtNr Bezeichnung Name Ort
100 Bohrer Kugler GmbH Kremmen
101 Pinsel Trims OHG Berlin
103 Hammer Kugler GmbH Kremmen
105 Zange Kugler GmbH Kremmen
110 Kelle Auf & Ab KG Bernau
111 Gips Lederer AG Berlin
112 Zement Lederer AG Berlin

Solange keine der verbundenen Tabellen NULL-Werte enthält sind Verbunde relativ unkompliziert zu handhaben. "Verbundspalten mit NULL-Werten" bergen erhebliche Probleme und benötigen besondere Abfragen.

zum Seitenanfang springen

zum Seitenanfang springen