Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Alle bisher gezeigten Abfragen auf mehreren Tabellen verwendeten Equi-Joins, bei denen die Werte der beiden Tabellen übereinstimmen müssen, damit der Join Erfolg hat. Ein Equi-Join verwendet immer ein Gleichheitszeichen, wie hier zu sehen:
ON e.assigned_branch_id = b.branch_id
Nun werden zwar auch Sie überwiegend mit Equi-Joins arbeiten, aber gelegentlich vielleicht Ihre Tabellen auf Wertebereichen verbinden. Dann spricht man von Non-Equi-Joins. Hier sehen Sie ein Beispiel einer Abfrage, die so verfährt:
SELECT e.emp_id, e.fname, e.lname, e.start_date FROM employee e INNER JOIN product p ON e.start_date >= p.date_offered AND e.start_date <= p.date_retired WHERE p.name = 'no-fee checking';
Diese Abfrage verbindet zwei Tabellen, die keine Fremdschlüsselbeziehungen haben. Das Ziel ist es, alle Mitarbeiter zu finden, die ihren Dienst bei der Bank zu der Zeit begonnen haben, als das Produkt »No-Fee Checking« (gebührenfreies Girokonto) angeboten wurde. Also muss das Einstellungsdatum des Mitarbeiters zwischen dem Datum liegen, an dem das Produkt herausgebracht wurde, und dem Datum, an dem es wieder eingestampft wurde.