EKKi: SQL Abfrage, JOIN?

Beitrag lesen

Mahlzeit hawkmaster,

SELECT
     A.PrinterType, A.PrintSystemsID, B.PrinterTypeID, CONCAT(C.VendorName,', ',B.PrinterName) AS completename, D.InstallElementsID AS ColorMode
    FROM
     printsystems A
    JOIN printertypes B ON B.PrinterType = A.PrinterType
    JOIN printervendors C ON C.PrinterVendor_ID = B.PrinterVendor_ID
LEFT JOIN printertypes_ppdvalues D ON D.PrinterTypeID = B.PrinterTypeID

Hier klebst Du die Werte aus der Tabelle "printertypes_ppdvalues" nur dann an die bisherige Ergebnismenge, wenn die "PrinterTypeID" jeweils übereinstimmt. Das bedeutet aber auch, dass es in der Spalte "ColorMode" durchaus Einträge geben kann, die NULL sind.

WHERE
     A.PWD = '1' AND A.PrintSystemsID != '1' AND D.InstallElementsID = 14 GROUP BY A.PrintSystemsID

Und hier machst Du Dir Dein LEFT JOIN von oben direkt wieder kaputt, weil Du leere Einträge gar nicht mehr zulässt.

Du kannst in der ON-Klausel eines LEFT JOINs durchaus auch mehrere Kriterien angeben:

  LEFT JOIN printertypes_ppdvalues D ON (D.PrinterTypeID = B.PrinterTypeID AND D.InstallElementsID = 14)  
 WHERE A.PWD = '1' AND A.PrintSystemsID != '1' GROUP BY A.PrintSystemsID

sollte ungefähr das tun, was Du vermutlich möchtest.

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|