Doppelter Join

bfsdasauge

Erfahrenes Mitglied
Hallo,

ich habe folgende Tabellen:

ort_tab:
- ort_id
- ort_name

strecke_tab:
- strecke_id
- ort_id_1
- ort_id_2
- entfernung

Dabei referenzieruen ort_id_1 und ort_id_2 auf die Spalte ort_id in der Tabelle ort_tab.

Beim Auslesen möchte ich nun die Tabelle strecke_tab mit der Tabelle ort_tab so verbinden, dass ich im Ergebnissatz jeweils auf die Spalte ort_name (ort_id_1) und ort_name (ort_id_2) zugreifen kann.

Beispiel:
ort_tab:
ort_id ort_name
1 München
2 Hamburg

strecke_tab
strecke_id ort_id_1 ort_id_2 entfernung
1 1 2 100

Die Ausgabe soll wie folgt aussehen:
... München Hamburg 100 ...

Ich habe versucht, wie folgt zu realisieren:
SELECT * FROM strecke_tab s
INNER JOIN ort_tab o1
ON o1.ort_id = s.ort_id_1
INNER JOIN ort_tab o2
ON o2.ort_id = s.ort_id_2;

Im Ergebnissatz erhalte ich aber die Spalte ort_name nur einmal und es steht immer der Wert des letzten Eintrags der Tabelle drin (in obigem Beispiel Hamburg).

Wie kann ich also den Join so gestalten, dass ich im Ergebnissatz bei der Spalte ort_name eine Eindeutigkeit hinbekomme?
 
Das Problem lässt sich mit dem lefter Join auch nicht lösen.

Wie kann ich zweimal die gleiche Tabelle joinen?
 
Zuletzt bearbeitet:
PHP:
SELECT
a.entfernung, b.ort_name as ort_name1, c.ort_name as ort_name2
FROM
strecke_tab a, ort_tab b, ort_tab c
WHERE
a.ort_id1 = b.ort_id AND a.ort_id2 = c.ort_id

Müsste eigentlch so gehen.
 
Zurück