Visa ett inlägg
Oläst 2013-08-15, 14:02 #7
mephisto73s avatar
mephisto73 mephisto73 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2008
Inlägg: 730
mephisto73 mephisto73 är inte uppkopplad
Mycket flitig postare
mephisto73s avatar
 
Reg.datum: Jan 2008
Inlägg: 730
Citat:
Ursprungligen postat av linusoleander Visa inlägg
Kod:
SELECT * FROM products P 
LEFT JOIN product_properties PP ON PP.product_id = P.ID 
LEFT JOIN property_values PV ON PV.ID = PP.property_ID 
WHERE property_values.value = 'crossover' AND property_values.value = 'red';
Returnerar noll rader!?

Jag tror dock att jag är en lösning på spåren:

Kod:
SELECT bp.ID FROM `base_products` bp 
JOIN product_properties pp ON pp.product_id=bp.ID
JOIN product_properties_values ppv ON pp.property_value_id = ppv.ID
WHERE ppv.value IN ('16','21') OR ppv.value IN ('blå')
GROUP BY ID HAVING COUNT(*) = 2
Där jag skippar "AND" mellan villkorsgrupperna och istället använder "OR", samtidigt som jag villkorar gruppningen av de returnerade raderna:

Kod:
GROUP BY ID HAVING COUNT(*) = 2
Där 2 motsvarar antalet egenskapsgrupper eller villkorsgrupper jag vill att de returnerade produkterna skall uppfylla.
mephisto73 är inte uppkopplad   Svara med citatSvara med citat