-- -- Beispiel einer Abfrage aus relationalen Tabellen -- zur Nachbildung einer kompletten Kursliste -- mit den Spalten Nr, Name, Tutor, Geburtstag, Ort, Straße, Telefon -- -- Man beachte die Verwendung (und vgl. mit angegebenem mySQL-Manual-Abschnitt) -- - von Kommentaren (mit -- ) -- - selbstformulierter Spaltentitel und eines Tabellen-Alias (mit AS ... ) -- - der Datenzusammensetzung (mit CONCAT() ; vgl. 12.3) -- - der Verknüpfung zweier Tabellen (mit INNER JOIN ... ON ... ; vgl. 13.2.7.1) -- - die Datensortierung (mit ORDER BY ... ; vgl. 13.2.7.1) -- - benutzerdefinierter Variablen und ihrer Inkrementierung (mit @; vgl. 9.3) -- - Datum- und Zeittypen sowie deren Umwandlung (vgl. 11.3 und 12.5) -- - CAST()-Operator zur Umwandlung int->varchar - wichtig bei Umlauten! (vgl. 12.8) -- -- Aufgabe ist es, eine komplette Kursliste zu erzeugen -- mit den Spalten Nr, Schülername, Tutor, Geburtstag, Adresse -- so wie sie im Upload-Portal abrufbar ist. -- -- (c) April 2008 .:. OStR Michael Ziemke, Koeln -- SET @nr=0; SELECT @nr:=@nr+1 AS "Nr.", CONCAT(sc.nachname,", ",sc.vorname) AS "Name", tu.kuerzel AS "Tutor", DATE_FORMAT(sc.gebdatum, "%d.%m.%Y") AS "Geburtstag", CONCAT(CAST(plz.plz AS CHAR)," ",ort.ortsname,", ",sc.strasse) AS "Ort, Straße", CONCAT(vw.nummer," - ",sc.rufnummer) AS "Telefon" FROM `gk_schueler` AS sc INNER JOIN `gk_plz_ort` AS plz ON sc.plz_ort_id=plz.id INNER JOIN `gk_ort` AS ort ON plz.ort_id=ort.id INNER JOIN `gk_tutor` AS tu ON sc.tutor_id=tu.id INNER JOIN `gk_vorwahl` AS vw ON sc.vorwahl_id=vw.id ORDER BY sc.nachname, sc.vorname;