sql >> Databasteknik >  >> RDS >> Mysql

MySQL sökprodukter med deras attribut

Du måste gå med med product_filters separat för varje attribut:

SELECT DISTINCT products.*  
FROM products
JOIN product_filters AS f1 ON f1.product_id=products.id
JOIN product_filters AS f2 ON f2.product_id=products.id
WHERE ( f1.attribute_id=1 and f1.filter_id in (1,2) )
AND ( f2.attribute_id=3 and f2.filter_id in (6) )

DEMO

Din version försökte hitta en enda rad i product_filters som har båda attribut-ID:n, vilket inte är möjligt.




  1. Inkompatibilitet med Mysql 5.7 (Uttryck #1 i ORDER BY-satsen finns inte i SELECT-listan)

  2. Hur man räknar en grupp efter fråga i NodeJS Sequelize

  3. postgresql lista och beställ tabeller efter storlek

  4. PHP INFOGA ett variabelt antal poster till mysql från ett html-formulär