3 Tabellen Verknüpfen

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 :confused:

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.

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

Huch, falsches Forum?

Abgesehen davon: sind das Hausaufgaben, die du da lösen möchtest?

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

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