Probleme bei LEFT JOIN - In WHERE Abfrage ok, in LEFT JOIN nicht ok
Kai(n)
- mysql
- mysqli
Ich verstehe die Welt nicht mehr und bin am verzweifeln
diese Abfrage funktioniert
SELECT a.id_an, a.count_a
FROM tab1 a, tab2 f
WHERE f.id_an = a.id_an AND f.pic=1
ORDER by a.id_an DESC
diese Abfage nicht...
SELECT a.id_an, a.count_a
FROM tab1 a, tab2 f
LEFT JOIN tab3 b ON b.id_an=a.id_an
WHERE f.id_an = a.id_an AND f.pic=1
ORDER by a.id_an DESC
#1054 - Unbekanntes Tabellenfeld 'a.id_an' in on clause
aber in der normales SELECT Abfrage geht es, warum ist es dan nin der LEFT JOIN ein unbekanntes Feld?
Kai
Hallo Kai(n),
LEFT JOIN verknüpft die beiden Tables links und rechts von sich. Das sind tab2 und tab3. Du musst die Reihenfolge in der FROM Klausel ändern, so dass tab1 und tab3 gejoined werden.
Rolf
Tach!
SELECT a.id_an, a.count_a FROM tab1 a, tab2 f LEFT JOIN tab3 b ON b.id_an=a.id_an WHERE f.id_an = a.id_an AND f.pic=1 ORDER by a.id_an DESC
#1054 - Unbekanntes Tabellenfeld 'a.id_an' in on clause
Du möchtest letztlich f mit a und b mit a joinen. Da must du zuerst zwei Tabellen joinen und an das Konglomerat die dritte joinen.
FROM a JOIN f ON ... LEFT JOIN b ON ...
Beachte: kein Komma, und dass die Bedingung zwischen f und a nun ins ON kann und nicht im WHERE stehen muss.
dedlfix.