Mailinglisten-Archive |
Hi Es wäre super, wenn mir jemand bei meinem Problem in mySQL helfen könnte: Drei Tabellen beschreiben Attribute eines Produktes in der Datenbank: z.B. attribute_type: +----+----------+------+ | id | name | unit | +----+----------+------+ | 1 | height | cm | | 2 | width | cm | | 3 | diameter | cm | +----+----------+------+ attribute_value: +----+----------+ | id | value | +----+----------+ | 1 | 10 | | 2 | 20 | | 3 | 30 | | 4 | 222 | +----+----------+ attribute: +----+----------+----------+------------+ | id | type_id | value_id | product_id | +----+----------+----------+------------+ | 1 | 1 | 1 | 21 | | 2 | 2 | 2 | 32 | | 3 | 2 | 3 | 40 | | 4 | 3 | 4 | 21 | +----+----------+----------+------------+ In einem Web-Form kann man das Produkt editieren, wobei es auch eine Attribut-Sektion gibt, wo bestimmten Attributen Produkt-spezifische Werte zugewiesen werden können. Das Problem tritt auf, sobald ich Attributen Werte in einem Produkt zugewiesen habe, werden bei anderen Produkte diese Attribute gar nicht mehr angezeigt, obwohl diese noch leer, d.h. keinen Wert enthalten. Anzeigen würde ich gern alle Attribute eines Produktes, unabhängig ob diese einen Wert haben oder nicht. Leider funktioniert mein Query nicht so richtig, da ich mit den Joins noch eher nicht ganz fit bin. Folgenden Query benutze ich aber irgendwas muss noch falsch sein: SELECT at.name, av.value, at.unit, at.id, a.product_id FROM attribute_type at LEFT OUTER JOIN attribute a on (at.id = a.type_id) LEFT OUTER JOIN attribute_value av on (av.id = a.value_id) WHERE (a.product_id = 21 OR a.product_id IS NULL OR a.value_ID IS NULL OR a.type_ID IS NULL) viele Grüße Andreas ----------------------------------------- Andreas Habereder private: ahabereder_(at)_web.de mobile: +49 172 838 7771 ----------------------------------------- --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive