Hallo,
Kann ich bei einem Left Join auch mit Where-Klausel arbeiten?
prinzipiell ja, aber ...
select DISTINCT
r.ID,
r.Name,
...
z.zahl
from table1 r
LEFT JOIN table2 z
ON r.ID = z.ID
WHERE
z.zahl = 0 // <--
natürlich nicht so. Dann kannst Du gleich einen INNER JOIN schreiben.
> Es geht also darum,
>
> 1) alle Einträge der Table1 in die Ergebnissmenge einzubeziehen, zu der es in Table2 keinen Eintrag gibt und
>
> 2) zu der es in Table2 zwar einen Eintrag gibt, dieser aber in der Spalte 'zahl' den Wert 0 hat.
> Ohne den Zusatz "WHERE z.zahl = 0" könnte ich in einer anschließenden Schleife in php abfragen, ob die Spalte 'zahl' den Wert 1 oder 0 hat.
>
> Geht das auch in einer einzigen Query?
klar. Hatten wir hier schobn öfter. Du möchtest die zweite Bedingung ebenfalls in die JOIN-Bedingung einbauen, vergleiche z.B.
</archiv/2008/4/t170482/#m1114517>
</archiv/2008/8/t175131/#m1150944>
Freundliche Grüße
Vinzenz