php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Produkt mit ganz bestimmten Attributen auslesen?!


 
jazzdee
04-04-2013, 15:21 
 
Guten Tag,

ich habe ein kleines Problem. Ich habe 3 Tabellen.

1. Produkt
2. Attribute
3. Attributzuordnungen

In Attributzuordnungen steht:
produkt_id
attribut_id
wert

Ich habe nun die ProduktID und beliebig viele AttributIDs, die ich bei der Suche einbeziehen kann.
Am Ende soll also etwas möglich sein wie:
Zeige mir alle Attribute an, deren Baujahr zwischen 1990 und 2010 ist und Gewicht zwischen 100kg bis 2000kg liegt.

Derzeit sieht es bei mir wie folgt aus:
SELECT produkt.*
FROM produkt, attribute_mm
WHERE produkt.id=attribute_mm.prodid
AND
(
(
attribute_mm.att_id=69
AND attribute_mm.value > "1950"
AND attribute_mm.att_id=69 AND attribute_mm.value < "2020"
)
AND
(
attribute_mm.uid_foreign=198
AND attribute_mm.value > "100"
AND attribute_mm.value< "5000"
)
)

Auf diese Weise bekomme ich kein Ergebnis, obwohl es Produkte gibt, die da hinein fallen.
Wenn ich das rot markierte AND durch ein OR ersetze, bekomme ich zwar ein Ergebnis, aber halt auch nur ein "halb richtiges", da er nun ein ENTWEDER ODER ausführt.

Kann ich diese Abfrage überhaupt mit einem Statement abwickeln? Wenn ja: kann mir jemand einen Rat geben?

 
wahsaga
04-04-2013, 16:18 
 
Gleiches Prinzip wie hier: http://www.php-resource.de/forum/sql-datenbanken/101976-bedingung-ueber-mehrere-zeilen-in-einer-query.html


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:14 Uhr.