【发布时间】:2010-12-01 16:30:57
【问题描述】:
我有两张表,大致如下:
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 |
| .. | ... | ... | ... |
========================================
一个产品可能有无限数量的属性,这就是为什么它们被保存在一个单独的表中。
我希望能够提取与多个(也是无限)属性条件匹配的不同产品,但我想不出如何在不使用 OR 条件的情况下执行此操作,然后使用某种计数来检查所有属性是否匹配.我很确定这不是最好的方法,所以希望有人能提供帮助?!
例如,查找 size = 'medium' 和 color = 'blue' 的产品(这将匹配上例中的产品 2)。
【问题讨论】:
标签: mysql one-to-many