Kapitel 6 – SQL-Joins 6.1 JOIN-Grundlagen Definition Ein JOIN verbindet Datensätze aus mehreren Tabellen miteinander. JOINs werden verwendet, wenn benötigte Daten auf mehrere Tabellen verteilt sind. Grundprinzip Tabellen werden meist über Primärschlüssel und Fremdschlüssel verbunden. Beispiel Tabelle Kunde Kundennr Name 1 Müller 2 Schneider Tabelle Bestellung Bestellnr Kundennr 1001 1 1002 2 Die Spalte Kundennr verbindet beide Tabellen. Grundaufbau SELECT kunde.name, bestellung.bestellnr FROM kunde JOIN bestellung ON kunde.kundennr = bestellung.kundennr; Wichtige JOIN-Arten JOIN-Art Bedeutung INNER JOIN nur passende Datensätze aus beiden Tabellen LEFT JOIN alle Datensätze der linken Tabelle RIGHT JOIN alle Datensätze der rechten Tabelle FULL OUTER JOIN alle Datensätze aus beiden Tabellen Merksatz JOINs verbinden Tabellen über gemeinsame Schlüssel. Prüfungshinweis In IHK-Aufgaben werden JOINs häufig benötigt, wenn Informationen aus mehreren Tabellen abgefragt werden sollen. Typische Fehler: JOIN-Bedingung vergessen. Primärschlüssel und Fremdschlüssel verwechseln. falsche Tabellen verbinden. INNER JOIN und LEFT JOIN verwechseln. Spaltennamen ohne Tabellennamen verwenden, obwohl sie mehrfach vorkommen. Quellen IT-Handbuch für Fachinformatiker 6.2 INNER JOIN Definition Ein INNER JOIN verbindet Datensätze aus zwei Tabellen. Es werden nur Datensätze ausgegeben, bei denen die Join-Bedingung in beiden Tabellen erfüllt ist. Grundaufbau SELECT spalte FROM tabelle1 INNER JOIN tabelle2 ON tabelle1.schluessel = tabelle2.fremdschluessel; Beispiel SELECT kunde.name, bestellung.bestellnr FROM kunde INNER JOIN bestellung ON kunde.kundennr = bestellung.kundennr; Bedeutung Es werden nur Kunden angezeigt, die eine passende Bestellung haben. Kunden ohne Bestellung erscheinen nicht im Ergebnis. Typischer Einsatz Ein INNER JOIN wird verwendet, wenn nur zusammengehörige Datensätze ausgegeben werden sollen. Beispiele: Kunden mit Bestellungen Artikel mit Kategorien Mitarbeiter mit Abteilungen Rechnungen mit Kunden Merksatz INNER JOIN zeigt nur passende Datensätze aus beiden Tabellen. Prüfungshinweis In IHK-Aufgaben ist der INNER JOIN die häufigste JOIN-Art. Typische Fehler: Join-Bedingung vergessen. INNER JOIN mit LEFT JOIN verwechseln. Fremdschlüssel und Primärschlüssel falsch verbinden. erwarten, dass Datensätze ohne passende Beziehung angezeigt werden. Quellen IT-Handbuch für Fachinformatiker 6.3 LEFT JOIN Definition Ein LEFT JOIN verbindet Datensätze aus zwei Tabellen. Es werden alle Datensätze der linken Tabelle ausgegeben, auch wenn es keinen passenden Datensatz in der rechten Tabelle gibt. Grundaufbau SELECT spalte FROM tabelle1 LEFT JOIN tabelle2 ON tabelle1.schluessel = tabelle2.fremdschluessel; Beispiel SELECT kunde.name, bestellung.bestellnr FROM kunde LEFT JOIN bestellung ON kunde.kundennr = bestellung.kundennr; Bedeutung Es werden alle Kunden angezeigt. Kunden ohne Bestellung erscheinen ebenfalls im Ergebnis. Bei fehlender Bestellung steht in den Spalten der rechten Tabelle NULL . Typischer Einsatz Ein LEFT JOIN wird verwendet, wenn alle Datensätze der linken Tabelle erhalten bleiben sollen. Beispiele: alle Kunden, auch ohne Bestellung alle Artikel, auch ohne Verkauf alle Mitarbeiter, auch ohne Abteilung alle Kategorien, auch ohne Artikel Merksatz LEFT JOIN zeigt alle Datensätze der linken Tabelle und passende Datensätze der rechten Tabelle. Prüfungshinweis In IHK-Aufgaben ist LEFT JOIN wichtig, wenn auch Datensätze ohne passende Beziehung angezeigt werden sollen. Typische Fehler: LEFT JOIN mit INNER JOIN verwechseln. erwarten, dass nur passende Datensätze angezeigt werden. NULL-Werte bei fehlenden passenden Datensätzen nicht beachten. linke und rechte Tabelle vertauschen. Quellen IT-Handbuch für Fachinformatiker 6.4 Mehrere Tabellen verbinden Definition Bei SQL-Abfragen können mehrere Tabellen mit mehreren JOINs verbunden werden. Das wird benötigt, wenn die gesuchten Informationen auf mehr als zwei Tabellen verteilt sind. Grundprinzip Jede zusätzliche Tabelle wird mit einem weiteren JOIN verbunden. Die Verbindung erfolgt meistens über Primärschlüssel und Fremdschlüssel . Beispiel Tabellen Tabelle Enthält kunde Kundendaten bestellung Bestellungen bestellposition Artikel einer Bestellung artikel Artikeldaten Beispiel SQL SELECT kunde.name, bestellung.bestellnr, artikel.bezeichnung FROM kunde INNER JOIN bestellung ON kunde.kundennr = bestellung.kundennr INNER JOIN bestellposition ON bestellung.bestellnr = bestellposition.bestellnr INNER JOIN artikel ON bestellposition.artikelnr = artikel.artikelnr; Bedeutung Die Abfrage verbindet: Kunde mit Bestellung Bestellung mit Bestellposition Bestellposition mit Artikel Typischer Einsatz Mehrere Tabellen werden verbunden bei: Kunden und Bestellungen Bestellungen und Artikeln Rechnungen und Positionen Mitarbeiter und Abteilungen Produkte und Kategorien Merksatz Mehrere Tabellen werden Schritt für Schritt über JOINs verbunden. Prüfungshinweis In IHK-Aufgaben müssen häufig mehrere Tabellen verbunden werden, wenn die benötigten Spalten nicht in einer einzigen Tabelle stehen. Typische Fehler: eine notwendige Zwischentabelle vergessen falsche Schlüssel miteinander verbinden JOIN-Bedingung vergessen Primärschlüssel und Fremdschlüssel verwechseln Spaltennamen ohne Tabellennamen verwenden, obwohl sie mehrfach vorkommen Quellen IT-Handbuch für Fachinformatiker