Hallo ich versuche mich gerade an einer Abfrage mit mehreren Tabellen und einem Self Join.
Ich möchte gerne das jede Spalte aus der Tabelle product genau einmal vorkommt.
aidfeat soll entweder 1 oder NULL sein.
bidfeat soll entweder 2 oder NULL sein.
Folgenden SQL Code hab ich verwendet:
und das ist das Ergebniss:
schon nicht schlecht wie ich finde jetzt nur noch die Bedingung für bidfeat eingeben um die erste Zeile auszublenden und in der 3.Zeile bei ID 101 aus bidfeat und bval ein NULL zu zaubern.
Dafür verwede ich folgenden Code:
und das ist das Ergebnis:
leider schmeißt mir die Abfrage jetzt die ID 101 komplett raus. Welche WHERE Bedingung kann ich verwenden.
Vielen Dank und schönen Abend.
Ich möchte gerne das jede Spalte aus der Tabelle product genau einmal vorkommt.
aidfeat soll entweder 1 oder NULL sein.
bidfeat soll entweder 2 oder NULL sein.
Folgenden SQL Code hab ich verwendet:
Code:
SELECT product.id_product, reference, status, a.id_feature aidfeat, a.id_feature_value aval, b.id_feature bidfeat, b.id_feature_value bval
FROM product
LEFT JOIN pcupdate ON product.reference = pcupdate.artikelnummer
LEFT JOIN feature_product a ON product.id_product = a.id_product
LEFT JOIN feature_product b ON product.id_product = b.id_product
WHERE (a.id_feature=1 OR a.id_feature IS NULL)
und das ist das Ergebniss:
Code:
id_product | reference | status | aidfeat | aval | bidfeat | bval
------------+------------+--------+---------+------+---------+-----
100 | 19100 | 1 | 1 | 1 | 1 | 1
100 | 19100 | 1 | 1 | 1 | 2 | 2
101 | 1103 | 2 | 1 | 2 | 1 | 2
102 | 19050 | 2 | NULL | NULL | NULL | NULL
103 | 19100 | 1 | NULL | NULL | NULL | NULL
104 | sdfds | NULL | NULL | NULL | NULL | NULL
schon nicht schlecht wie ich finde jetzt nur noch die Bedingung für bidfeat eingeben um die erste Zeile auszublenden und in der 3.Zeile bei ID 101 aus bidfeat und bval ein NULL zu zaubern.
Dafür verwede ich folgenden Code:
Code:
SELECT product.id_product, reference, status, a.id_feature aidfeat, a.id_feature_value aval, b.id_feature bidfeat, b.id_feature_value bval
FROM product
LEFT JOIN pcupdate ON product.reference = pcupdate.artikelnummer
LEFT JOIN feature_product a ON product.id_product = a.id_product
LEFT JOIN feature_product b ON product.id_product = b.id_product
WHERE (a.id_feature=1 OR a.id_feature IS NULL)
AND
(b.id_feature=2 OR b.id_feature IS NULL)
und das ist das Ergebnis:
Code:
id_product | reference | status | aidfeat | aval | bidfeat | bval
------------+------------+--------+---------+------+---------+-----
100 | 19100 | 1 | 1 | 1 | 2 | 2
102 | 19050 | 2 | NULL | NULL | NULL | NULL
103 | 19100 | 1 | NULL | NULL | NULL | NULL
104 | sdfds | NULL | NULL | NULL | NULL | NULL
leider schmeißt mir die Abfrage jetzt die ID 101 komplett raus. Welche WHERE Bedingung kann ich verwenden.
Vielen Dank und schönen Abend.