Vinzenz Mai: mysql: Problemchen mit left join

Beitrag lesen

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