Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik

Verknüpfungsoperation


Notizen:

(non) Equi-JOIN
SELECT T1.FeldA, T2.FeldB FROM Tabelle1 AS T1, Tabelle2 AS T2 WHERE T1.FeldX = T2.FeldY
Equi-JOIN: in der JOIN-Klausel (bzw. der JOIN-Bedingung in der WHERE-Klausel) steht als Operator ein „=“: nur 'zusammenpassende' Zeilen werden kombiniert
Non-Equi-JOIN: in der JOIN-Klausel (bzw. der JOIN-Bedingung in der WHERE-Klausel) steht als Operator etwas anderes als „=“ (!=, <, >=, ...)
Achtung! Equi- oder Non-Equi-JOIN gibt es bei Allen JOIN-Arten (INNER~, alle OUTER~)!
Anm.: Non-Equi-Joins kommen in Praxis so gut wie nie vor!
Auch, wenn es schwierig ist, sich hier ein Beispiel auszudenken, gibt es doch Situationen, wo ein non-equi-JOIN Sinn macht. Ein Beispiel: In einer Maschinenhalle beginnt ein Einrichter seine Schicht um 8:00. Das wird in einer Schichttabelle vermerkt. Es sollen aus einer anderen Tabelle mit Messwerten alle Einträge heraus geholt werden, die nach Beginn der letzten Schicht angefallen sind:
SELECT s.Einrichter, d.* FROM Messdaten AS d INNER JOIN Schichten AS s ON d.Messzeit >= s.Messzeit WHERE s.Einrichter = 1028 AND s.Schicht = 104 ;
Anm.: Dieses Statement funktioniert nur, sofern die Schicht 104 die allerletzte aufgezeichnete ist. Gäbe es danach noch weitere Schichten, würden auch deren Daten – fälschlicherweise – gemeinsam mit den Daten der Schicht 104 heraus kommen. Um Daten beliebiger Schichten abzufragen, müsste das Statement wesentlich komplizierter aufgebaut sein!