zoj
31. März 2008 um 17:26
1
Hallo,
ich habe folgendes Problem:
Ich habe eine Datenbank erstellt, welche 3 Tabellen beinhaltet.
Tabelle1: Lehrer (ID/VORNAME/NACHNAME)
Tabelle2: Schueler (ID/VORNAME/NACHNAME)
Tabelle3: Rel_L_S (ID/ID_lehrer/ID_schueler)
Ich soll alle Lehrer ausgeben, welche z.B. “Heiko Warneke” unterrichten, der die ID 1 hat.
Wie krigt man das hin
Ich habe folgendes probiert:
SELECT * FROM aufgabe_5_1.rel_l_s where rel_l_s.id_schueler = ‘1’;
Dabei wird mir die ID der Lehrer angezeigt, die den Schueler mit der ID = 1 unterichten.
Gesucht sind aber die Namen der Lehrer.
Ich würde gerne die ganze datenbank posten, weis aber nicht wie ich die Datenbank in eine Text Datei verpack, ich benutze: MySQL Querry Browser.
zoj:
Hallo,
ich habe folgendes Problem:
Ich habe eine Datenbank erstellt, welche 3 Tabellen beinhaltet.
Tabelle1: Lehrer (ID/VORNAME/NACHNAME)
Tabelle2: Schueler (ID/VORNAME/NACHNAME)
Tabelle3: Rel_L_S (ID/ID_lehrer/ID_schueler)
Ich soll alle Lehrer ausgeben, welche z.B. “Heiko Warneke” unterrichten, der die ID 1 hat.
Wie krigt man das hin
Da gibt es, wie so oft, viele Wege. Einfach z.B. via Subselect:
test=*# select * from lehrer ;
id | vname | nname
----+--------+---------
1 | Max | Lehrer1
2 | Moritz | Lehrer2
3 | Oskar | Lehrer3
(3 rows)
Time: 1.204 ms
test=*# select * from schueler;
id | vname | nname
----+-----------+----------
1 | magdalena | schüler1
2 | katharina | schüler2
(2 rows)
Time: 0.964 ms
test=*# select * from rel_l_s ;
id | id_lehrer | id_schueler
----+-----------+-------------
1 | 1 | 1
2 | 2 | 1
3 | 2 | 2
(3 rows)
Time: 0.956 ms
test=*# select l.vname, l.nname from lehrer l where id in (select id_lehrer from rel_l_s where id_schueler = (select id from schueler where vname='magdalena' and nname='schüler1'));
vname | nname
--------+---------
Moritz | Lehrer2
Max | Lehrer1
(2 rows)
Andreas
oder mit einem, bzw. 2 JOINTs (wer drauf steht)
test=*# select l.vname, l.nname from rel_l_s r right join lehrer l on(r.id_lehrer=l.id) right join schueler s on(r.id_schueler=s.id) where s.id=1;
vname | nname
--------+---------
Max | Lehrer1
Moritz | Lehrer2
(2 rows)
Andreas
ads
31. März 2008 um 18:34
4
Huch, falsches Forum?
Abgesehen davon: sind das Hausaufgaben, die du da lösen möchtest?
ads:
Huch, falsches Forum?
Dachte ich auch schon, aber dagegen spricht, daß er referentielle Beziehungen zwischen 3 Tabellen nutzt duck .
Abgesehen davon: sind das Hausaufgaben, die du da lösen möchtest?
Offensichtlich…
Andreas
zoj
2. April 2008 um 13:10
6
Hausaufgaben sind das eigentlich nicht.
Das ist eine der Aufgaben, die mir Rätsel bereitet.
Ich danke aber trotztdem für eure Hilfe!
P.S kann mir vielleicht einer ein Buch empfehlen, wo solch komplizierte Dinge; wie z.B: 3 Tabellen vberknüpfen oder ähnliches erklärt wird?
Mit freundlichen Grüßen!
Guggst Du in meiner del.icio.us - Linksammlung in den passenden Kategorien.
Andreas