我有两张表大致如下:
products product_attributes
================== ========================================
| id | name | | id | product_id | attribute | value |
================== ========================================
| 1 | product 1 | | 1 | 1 | size | big |
| 2 | product 2 | | 2 | 1 | colour | red |
| 3 | product 3 | | 3 | 2 | size | medium |
| 3 | product 3 | | 4 | 2 | age_range | 3-5 |
| .. | ... | | 5 | 2 | colour | blue |
================== | 6 | 3 | size | small |
| .. | ... | ... | ... |
========================================
产品可能存在无限量的属性,这就是为什么它们保存在单独的表中.
我希望能够提取出与MULTIPLE(也是无限)属性条件相匹配的不同产品,但是我不知道如何在不使用OR条件的情况下完成它,然后进行某种计数以检查所有属性是否匹配.我相当肯定这不是最好的方式,所以希望有人可以提供帮助?!
例如,找到size =’medium’和color =’blue’的产品(这将匹配上例中的产品2).