wiedermai Join MySQL

anmae

Erfahrenes Mitglied
Ich habe eine Abfrage die so aussieht:
Code:
SELECT 
tbl_pd_pic.pic as pic, tbl_pd_pdtb.PID, tbl_pd_pdtb.Bezeichnung, tbl_pd_pdtb.Beschreibung, tbl_pd_pdtb.Preis, tbl_pd_angeb.Preis as angeb, tbl_pd_angeb.von, tbl_pd_angeb.bis 
FROM 
tbl_pd_pic, tbl_pd_pdtb, tbl_pd_angeb 
WHERE 
tbl_pd_pdtb.PID=tbl_pd_angeb.PID AND tbl_pd_pdtb.PID=tbl_pd_pic.PID 
GROUP BY tbl_pd_angeb.PID

Mein Problem ist, dass es Produkte ohne Bilder gibt, d.h. in tbl_pd_pic ist kein passender Eintrag, tbl_pd_pdtb.PID=tbl_pd_pic.PID trifft nicht zu.
Diese Produkte möchte ich aber trotzdem im Ergebniss der Abfrage haben, halt mit nem pic=NULL oder so.
Ist das möglich?

Danke schonmal
 
Zuletzt bearbeitet:
Dann arbeite mit einem LEFT OUTER JOIN:
Code:
SELECT 
        tbl_pd_pic.pic as pic,
        tbl_pd_pdtb.PID,
        tbl_pd_pdtb.Bezeichnung,
        tbl_pd_pdtb.Beschreibung,
        tbl_pd_pdtb.Preis,
        tbl_pd_angeb.Preis as angeb,tbl_pd_angeb.von,
        tbl_pd_angeb.bis

  FROM
        tbl_pd_pdtb
  INNER JOIN
        tbl_pd_angeb ON ( tbl_pd_pdtb.PID=tbl_pd_angeb.PID )
  LEFT OUTER JOIN
        tbl_pd_pic ON ( tbl_pd_pdtb.PID=tbl_pd_pic.PID )

  GROUP BY
        tbl_pd_angeb.PID
 
Du solltest generell JOINS verwenden anstatt die Form, die du bisher verwendest, da es leichter zu lesen ist, selterner Probleme/Fehler gibt und ich schon mehrmals gelesen habe, dass es mit JOIN's schneller sein soll, da weniger interpretier-arbeit von der DB erforderlich ist.
 
Zurück