Doppelter Join auf gleiche Tabelle

martinibook

martinibook

Aktives Mitglied
Thread Starter
Dabei seit
20.08.2005
Beiträge
8.730
Reaktionspunkte
350
Hallo,

Ich habe eine Tabelle mit Leuten (id, name, …) und noch eine Tabelle mit n:n Beziehungen (von (id), an (id), was (text)). Jetzt möchte ich eine Tabelle haben mit name1, name2 und dem was-text.

Probiert habe ich:
Code:
 SELECT * FROM texte LEFT JOIN leute ON von = person_id LEFT JOIN leute ON an = person_id

Jedoch mein MySQL, dass ich die Tabelle "leute" doppelt verwendet habe. Wie mache ich das denn jetzt korrekt?
 
Code:
SELECT * FROM texte 
LEFT JOIN leute ON von = person_id
                      AND an = person_id

Bringt dich das zu deinem Ziel? Habs nicht probiert. Ist einfach mal so eine Idee.
 
Du musst dann natürlich noch die richtigen Namen der Felder einsetzen:

Code:
SELECT t.*,
an.name as an_name,
von.name as von_name,
FROM texte
LEFT JOIN leute AS an
ON texte.an = an.id
LEFT JOIN leute AS von
ON texte.von = von.id

Ich bin davon ausgegangen, dass von und an auf die ID in der Personentabelle verweisen.
 
Zurück
Oben Unten