2x in einer Abfrage auf Tabelle zugreifen

Jean M. Phridds

Neuer Benutzer
Beiträge
4
Hallo Leute,

ich habe eine Tabelle ("Beruf"), die aus Berufsbezeichnungen besteht, z.B. Satz 1: ID=1, Berufsbezeichnung=Lehrer, Satz 2: ID=2, Berufsbezeichnung=Schreiner, ... usw.

In einer anderen Tabelle ("Personen") habe ich Personen mit Name, Vorname, ... und auch mit einer Spalte "GelernterBeruf" und einer Spalte "AusgeübterBeruf". In diesen beiden Spalten stehen nur die IDs der Berufsbezeichnungen drin.

Also z.B. ´"Name"="Müller", ...., "Gelernter Beruf" = 1, "Ausgeübter Beruf" = 2

Mit der Abfrage
select Name, Berufsbezeichnung from Personen inner join Beruf on Personnen.GelernterBeruf = Beruf.id erhalte ich beispielsweise "Müller, Lehrer".

Nun hätte ich gerne in einer einzigen Abfrage nicht nur den GelerntenBeruf, sondern auch noch den AusgeübtenBeruf von Müller angezeigt. Solange ich nur die IDs anzeigen lasse, ist das kein Problem, sobald ich aber von beiden IDs, also von GelernterBeruf und von AusgeübterBeruf, auch die Berufsbezeichnungen anzeigen will, d.h. wenn ich zwei Mal auf die Tabelle Beruf zugreifen muss, funktioniert das nicht mit der Methode inner join. Oder doch? Vielleicht geht es mit irgendeiner Unterabfrage? Hat jemand eine Idee? Das Ergebnis sollte mit einer einer Abfrage lauten: Müller, Lehrer, Schreiner.
 
Werbung:
2 mal joinen, dabei einen Alias vergeben, damit Du auf die richtige Tabelle via Alias zugreifen kannst. Pseudocode:

Code:
select p.name, g.bezeichnung as gelernt, a.bezeichnung as derzeit from person p left join beruf g on p.gelernt=g.id left join beruf a on p.derzeit=a.id ...
 
Werbung:
Zurück
Oben