Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
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:47] – [LEFT JOIN] sbel | faecher:informatik:oberstufe:datenbanken:joinsii:start [23.11.2020 21:10] – [INNER JOIN] sbel | ||
---|---|---|---|
Zeile 22: | Zeile 22: | ||
es gibt also keinen Datensatz in den beiden Tabellen, bei denen '' | es gibt also keinen Datensatz in den beiden Tabellen, bei denen '' | ||
+ | ==== Beispiel: ==== | ||
+ | <code sql> | ||
+ | SELECT * FROM lehrer LEFT JOIN schueler ON lehrer.id=schueler.KLID | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Es werden also die Lehrer zusammen mit den Schülern ausgegeben, die sie unterrichten. Weil als Selektor '' | ||
+ | |||
+ | Natürlich kann man nun wie immer selektieren, | ||
+ | |||
+ | <code sql> | ||
+ | SELECT lehrer.name, | ||
+ | FROM lehrer | ||
+ | LEFT JOIN schueler ON lehrer.id=schueler.KLID | ||
+ | ORDER BY lehrer.name ASC | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <code sql> | ||
+ | SELECT lehrer.name, | ||
+ | FROM lehrer | ||
+ | LEFT JOIN schueler ON lehrer.id=schueler.KLID | ||
+ | WHERE lehrer.name LIKE " | ||
+ | ORDER BY lehrer.name ASC | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier kann man auch nochmal schön demonstrieren, | ||
+ | |||
+ | <code sql> | ||
+ | SELECT lehrer.name | ||
+ | FROM lehrer | ||
+ | LEFT JOIN schueler ON lehrer.id=schueler.KLID | ||
+ | ORDER BY lehrer.name ASC | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Weitere Join-Statements ===== | ||
+ | |||
+ | ==== RIGHT JOIN ==== | ||
+ | |||
+ | |||
+ | Die Syntax von RIGHT JOIN entspricht der von LEFT JOIN. Der Unterschied ist, dass hier die Tabelle die im JOIN hinzugefügt wird als Basis für die Datensätze dient - gibt es keine Treffer, werden die Felder der mit FROM selektierten Tabelle mit NULL-Werten gefüllt: | ||
+ | <code sql> | ||
+ | SELECT * FROM lehrer RIGHT JOIN schueler ON lehrer.id=schueler.KLID | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | " | ||
+ | |||
+ | ==== INNER JOIN ==== | ||
+ | |||
+ | Bei einem INNER JOIN muss eine passende Zeile in den Tabellen gefunden werden, Datebnsätze, | ||
+ | |||
+ | <code sql> | ||
+ | SELECT * FROM lehrer INNER JOIN schueler ON lehrer.id=schueler.KLID | ||
+ | </ | ||
+ | |||
+ | {{ : |