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 20:04] – [Beispiel:] sbel | faecher:informatik:oberstufe:datenbanken:joinsii:start [23.11.2020 21:03] – [Beispiel:] sbel |
---|
| |
Es werden also die Lehrer zusammen mit den Schülern ausgegeben, die sie unterrichten. Weil als Selektor ''*'' angegeben war, werden alle Felder beider Tabellen, bei denen die Join-Bedingung erfüllt ist ausgegeben - das wird man meist nicht wollen, s.u. Emmi Nöther hat keine Schüler, da es sich jedoch um einen Left Join handelt, wird ihr Datensatz dennoch ausgegeben und die fehlenden Schüler:innen durch NULL-Felder ersetzt. | Es werden also die Lehrer zusammen mit den Schülern ausgegeben, die sie unterrichten. Weil als Selektor ''*'' angegeben war, werden alle Felder beider Tabellen, bei denen die Join-Bedingung erfüllt ist ausgegeben - das wird man meist nicht wollen, s.u. Emmi Nöther hat keine Schüler, da es sich jedoch um einen Left Join handelt, wird ihr Datensatz dennoch ausgegeben und die fehlenden Schüler:innen durch NULL-Felder ersetzt. |
| |
| Natürlich kann man nun wie immer selektieren, welche Felder ausgegeben werden sollen, mit einer WHERE-Clause bestimmte Datensätze herausfiltern oder die Ergebnisse sortieren: |
| |
<code sql> | <code sql> |
{{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin02.png |}} | {{ :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,lehrer.vorname, schueler.name, schueler.vorname |
| FROM lehrer |
| LEFT JOIN schueler ON lehrer.id=schueler.KLID |
| WHERE lehrer.name LIKE "%t%" |
| ORDER BY lehrer.name ASC |
| </code> |
| |
| {{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin02a.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> | <code sql> |
| |
{{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin03.png |}} | {{ :faecher:informatik:oberstufe:datenbanken:joinsii:leftjoin03.png |}} |
| |
| ===== RIGHT JOIN ===== |
| |