faecher:informatik:oberstufe:datenbanken:joinsii:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
faecher:informatik:oberstufe:datenbanken:joinsii:start [23.11.2020 19:41] – [SQL - Joins II] sbelfaecher:informatik:oberstufe:datenbanken:joinsii:start [23.11.2020 20:02] – [Beispiel:] sbel
Zeile 7: Zeile 7:
 In MySQL stehen vier JOIN-Typen zur Verfügung: LEFT JOIN, RIGHT JOIN, INNER JOIN und FULL JOIN. In MySQL stehen vier JOIN-Typen zur Verfügung: LEFT JOIN, RIGHT JOIN, INNER JOIN und FULL JOIN.
  
-===== Einführung mit LEFT JOIN =====+===== LEFT JOIN =====
  
 +Die Syntax für einen LEFT JOIN ist wie folgt:
 +<code sql>
 +SELECT * FROM tabelle1
 +LEFT JOIN tabelle2 ON tabelle1.SpaltennameA = tabelle2.Spaltenname
 +LEFT JOIN tabelle3 ON tabelle1.SpaltennameB = tabelle3.Spaltenname
 +WHERE ...
 +</code>
 +
 +LEFT JOIN bedeutet nun, dass stets alle Zeilen der Tabelle zurückgegeben, die beim FROM aufgeführt sind - als gewissermaßen "links" stehen. Diese Tabelle stellt die Basis für das Ergebnis dar. 
 +
 +Es kann jetzt aber sein, dass in der Tabelle die per LEFT JOIN verknüpft wird kein passender Eintrag gefunden wird, 
 +es gibt also keinen Datensatz in den beiden Tabellen, bei denen ''tabelle1.SpaltennameA = tabelle2.Spaltenname'' ist. In diesem Fall erhalten diese Felder den NULL Wert, die Datenfelder der Ausgangstabelle werden aber auf jeden Fall ausgegeben.
 +
 +==== Beispiel: ====
 +<code sql>
 +SELECT * FROM lehrer LEFT JOIN schueler ON lehrer.id=schueler.KLID 
 +</code>
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin01.png |}}
 +
 +
 +<code sql>
 +SELECT lehrer.name,lehrer.vorname, schueler.name, schueler.vorname 
 +FROM lehrer 
 +LEFT JOIN schueler ON lehrer.id=schueler.KLID 
 +ORDER BY lehrer.name ASC 
 +</code>
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin02.png |}}
 +
 +Hier kann man auch nochmal schön demonstrieren, wie man mit der Benennung von Feldern mittels ''AS'' die LEsbarkeit der Statements verbessern kann:
 +
 +<code sql>
 +SELECT lehrer.name  AS Lname,lehrer.vorname AS LVname, schueler.name AS SName, schueler.vorname AS SVname 
 +FROM lehrer 
 +LEFT JOIN schueler ON lehrer.id=schueler.KLID 
 +ORDER BY lehrer.name ASC 
 +</code>
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin03.png |}}
  • faecher/informatik/oberstufe/datenbanken/joinsii/start.txt
  • Zuletzt geändert: 16.11.2023 11:48
  • von Svenja Müller