Citat:
Ursprungligen postat av linusoleander
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.