ich habe bereits versucht mit Hilfe der Suchfuntion hier im Forum eine Antwort zu bekommen, jedoch keine direkte Antwort für mein Problem bekommen. Ich hoffe Ihr könnt mir weiterhelfen.
Das Problem:
Es existieren 2 Tabellen: PRODUCT und PRODUCT_ATTR
In der Tabelle PRODUCT stehen "Stammdaten" also z.B. der Name eines Produktes. Die Datensätze werden in dieser Tabelle durch die PRODUCT_ID eindeutig gekennzeichnet. In der Tabelle PRODUCT_ATTR stehen Attribute (Eigenschaften) für die Produkte aus der Tabelle PRODUCT. Die PRODUCT_ID ist Fremdschlüssel in der Tabelle PRODUCT_ATTR.
PRODUCT:
ID_PRODUCT | NAME | REFCODE | PRODUCT_NUMBER | TYPE
-----------------------------------------------------------------------------------
3105 | Füller1 | GH-HZ1 | 653673 | VG
3106 | Füller2 | GH-HZ2 | 653677 | VG
3107 | Füller3 | GH-HZ3 | 653678 | ZH
3108 | Füller4 | GH-HZ4 | 653673 | VG
...usw
PRODUCT_ATTR
ID_ATTR | ID_PRODUCT | NAME | TYPE
---------------------------------------------------------------------------------
1221 | 3105 | Karton | Verpackung
1222 | 3105 | Höhe | tech_data
1223 | 3106 | Folie | Verpackung
...usw
Eine Abfrage auf die beiden Tabelle sollen nun ALLE Produkte vom TYPE VG aus der Tabelle PRODUCT ausgeben die über eine Verpackung verfügen (manche Produkte haben keine Verpackung diese sollen aber trotzdem ausgegeben werden. Die Verpackung befindet sich in der Tabelle PRODUCT_ATTR in der Spalte NAME. Der NAME muss vom TYPE Verpackung sein.
Hier mein Code:
Die Schwierigkeit: Es kann sehr wohl sein, dass ein Produkt aus der Tabelle PRODUCT einen Datensatz von einem anderen TYPE besitzt z.B. technische Daten. Die SQL Abfrage muss also Produkte finden, die einen Datensatz vom TYPE Verpackung haben, falls für das Produkt keine Verpackung vorhanden trotzdem ausgeben.
$sql_statement="SELECT PRODUCT.ID_PRODUCT, PRODUCT.PRODUCT_NUMBER, PRODUCT.NAME, PRODUCT.REFCODE, PRODUCT.TYPE, PRODUCT_ATTR.ID_PRODUCT, PRODUCT_ATTR.TYPE, PRODUCT_ATTR.NAME AS NAME2 FROM PRODUCT LEFT JOIN PRODUCT_ATTR ON PRODUCT.ID_PRODUCT = PRODUCT_ATTR.ID_PRODUCT WHERE PRODUCT.TYPE = 'VG' AND PRODUCT_ATTR.TYPE='Verpackung' ORDER BY PRODUCT.PRODUCT_NUMBER";
VIELEN DANK IM VORAUS
JOSH