Abfragen: Verbünde („Joins“) » Aufgaben
Alle Aufgaben beziehen sich auf die Datenbanken fahrschule und onlineshop und können mit dem SQL-Browser gelöst werden.
„Alle Informationen zu den Schüler/innen, inkl. allen Informationen ihres jeweils zugeordneten Fahrlehrers“
Erwartetes Ergebnis:
SELECT *
FROM fahrschueler AS fs,
fahrlehrer AS fl
WHERE fs.fl_kuerzel = fl.kuerzel -- JOIN-Bedingung
„Die Namen aller Schüler/innen, inkl. Vor- und Nachname ihres zugeordneten Fahrlehrers“
Erwartetes Ergebnis:
SELECT fs.vorname AS schueler_vorname,
fs.nachname AS schueler_nachname,
fl.vorname AS fahrlehrer_vorname,
fl.nachname AS fahrlehrer_nachname
FROM fahrschueler AS fs,
fahrlehrer AS fl
WHERE fs.fl_kuerzel = fl.kuerzel -- JOIN-Bedingung
„Die Vor- und Nachnamen der Kund/innen, die das Buch mit der ISBN 978-3-596-52008-3 im Warenkorb haben“
Erwartetes Ergebnis:
SELECT vorname, nachname
FROM kunde, warenkorb
WHERE kunde.kundennr = warenkorb.kundennr -- JOIN-Bedingung
AND warenkorb.isbn = '978-3-596-52008-3'
„Buchtitel und Autornamen jener Bücher, die im Warenkorb von Kunde mit Kundennr. 2 liegen“
Erwartetes Ergebnis:
SELECT titel, autor
FROM warenkorb, buch
WHERE warenkorb.isbn = buch.isbn -- JOIN-Bedingung
AND warenkorb.kundennr = 2
„Vornamen und Nachnamen der Kunden, sowie Buchtitel und Autornamen aller im Warenkorb enthaltenen Bücher inkl. bestellter Anzahl, sortiert nach dem Nachnamen der Kund/innen“
Verwende zwei Joins:
kunde
mitwarenkorb
joinenwarenkorb
mitbuch
joinen
Erwartetes Ergebnis:
SELECT k.vorname, k.nachname, b.titel, b.autor, wk.anzahl
FROM kunde AS k,
warenkorb AS wk,
buch AS b
WHERE k.kundennr = wk.kundennr -- 1. JOIN-Bedingung
AND wk.isbn = b.isbn -- 2. JOIN-Bedingung
ORDER BY k.nachname
Weitere Aufgaben
- https://www.inf-schule.de/datenbanksysteme/gbuch/datenverknuepfen/uebungen
- https://sqlzoo.net/wiki/The_JOIN_operation (Besonderheit: Hier wird das Schlüsselwort
JOIN
verwendet − wir haben das kartes. Prod. + Join-Bedingung in derWHERE
-Klausel verwendet. Es handelt sich aber nur um eine andere Schreibweise)