Frank S.: Mehrere Left Joins in mySQL

Hallo zusammen,

Ich kriegs in mySQL irgendwie nicht hin, mehrere Left Joins auch mehrere Fremdschlüssel auszuführen - bei einem Left Join funktioniert es, wenn ich aber so etwas hier versuche, kommt nur noch eine Meldung, dass S2 nicht gefunden wird.

SELECT     S1.`name` AS `name_a1`, S1.`vorname` AS `vorname_a1`, L1.`flagge` AS `flagge_a1`,  
           L1.`kuerzel` AS `kuerzel_a1`, S2.`name` AS `name_b1`, S2.`vorname` AS `vorname_b1`,  
           L2.`flagge` AS `flagge_b1`, L2.`kuerzel` AS `kuerzel_b1`, V1.`kuerzel` AS `verband_a1`,  
           V2.`kuerzel` AS `verband_b1`  
FROM      `s_spielpaarung` P, `t_land` L1, `t_land` L2, `t_spieler` S2, `t_spieler` S1  
LEFT JOIN `t_verband` V1 ON (S1.`t_verbandID` = V1.`t_verbandID`)  
LEFT JOIN `t_verband` V2 ON (S2.`t_verbandID` = V2.`t_verbandID`)  
WHERE      P.`spieler_a1ID` = S1.`t_spielerID`  
AND        P.`spieler_b1ID` = S2.`t_spielerID`  
AND        S1.`t_landID`    = L1.`t_landID`  
AND        S2.`t_landID`    = L2.`t_landID`  
AND        P.`s_spielpaarungID`='$spielpaarung'

Ich hab mal versucht, die Reihenfolge der Tabellen im FROM Block zu ändern. Der Left Join funktioniert offenbar immer nur mit der letzten Tabelle, die aufgelistet ist und das Feld aus der anderen Tabelle wird nicht gefunden.

Als Fehlermeldung kommt dann etwas in der Art:
#1054 - Unknown column 'S2.t_verbandID' in 'on clause'

Kann mir da jemand helfen?

  1. Hallo,

    Warum verwendest Du die hübsche und übersichtliche explizite Join-Syntax nicht auch für Deine INNER JOINS?

    Automatisch entfiele Dein Fehler, der die Operatorenpriorität nicht berücksichtigt.

    Ich hab mal versucht, die Reihenfolge der Tabellen im FROM Block zu ändern. Der Left Join funktioniert offenbar immer nur mit der letzten Tabelle, die aufgelistet ist und das Feld aus der anderen Tabelle wird nicht gefunden.

    Ja, das steht ganz genauso im Handbuch. Das ist zu erwarten und wurde hier  schon mehrfach angesprochen, zum Beispiel:

    </archiv/2009/4/t186018/#m1235144>
    </2008/9/t177376/#m1168263>

    Freundliche Grüße

    Vinzenz