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:
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?
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:
Code:
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" ) [B][COLOR="red"]AND[/COLOR][/B] ( attribute_mm.uid_foreign=198 AND attribute_mm.value > "100" AND attribute_mm.value< "5000" ) )
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?
Kommentar