Inner Joins Inner Joins • In den seltensten Fällen haben wir Datenbanken mit nur einer Tabelle. Meist handelt es sich dabei nur um einfache Tabellen wie einer Telefonliste zum Beispiel, oder einer nicht normalisierten Tabelle bzw. einer schlecht organisierten Tabelle. Inner Joins • Im Syntax des SELECT Befehls ist es möglich das in der FROM Klausel mehrere Tabellen als Suchort angegeben werden können. Immer wenn dort wo mehrere Tabellen in der FROM Klausel angegeben werden spricht man von einem Join. Inner Joins • Der Befehl SELECT autor, titel, name, Rückgabedatum FROM buecher, leser, verleih; ist syntaktisch richtig liefert aber ein umfangreiches Ergebnis was als kartesisches Produkt bezeichnet wird. Inner Joins • Um einen vernünftigen Join zu bilden, der ein akzeptables Ergebins liefert müssen fast immer zusätzliche Bedingungen über die WHERE Klausel formuliert werden, die so genannten Join- Bedingungen. Inner Joins • Einen Join zweier Tabellen kann man sich als eine neue Tabelle vorstellen, und im allgemeinsten Fall die Kombination aller Zeilen der ersten Tabelle mit allen Zeilen der zweiten. Eine solche Verknüpfung nennt man das kartesische Produkt der Tabellen Inner Joins U u1 a V v1 v2 x 2 y 1 b c Inner Joins UxV u1 a v1 x v2 2 a y 1 b x 2 b y 1 c x 2 c y 1 Inner Joins • Für die Bildung eines solchen Produktes gibt es zwei gleichwertige SQL Anwendungen SELECT * FROM u,v; oder SELECT * FROM u cross join v; cross steht dabei für Kreuzprodukt, ein anderer Name für kartesisches Produkt