我有一个规范化的SQL数据库与几个表格和HTML表格读出数据。有一张表包含产品特征,任何产品都可以具有一个或多个特征。如何从sql-database读出数据,当几个标准匹配
主表:product_main pm, 具有特征的表格:product_characteristics pc, product_id是外键。
id | product_id | product_name | characteristic
1 | 27 | Product_C | characteristic5
2 | 27 | Product_C | characteristic11
3 | 27 | Product_C | characteristic3
4 | 27 | Product_C | characteristic47
5 | 27 | Product_C | characteristic34
6 | 28 | Product_D | characteristic29
7 | 28 | Product_D | characteristic63
8 | 28 | Product_D | characteristic2
现在,我想读出所有符合所选条件的product_names。这工作得很好,当选择只有一个特点:
SELECT pm.name
FROM product_main pm, product_characteristics pc
WHERE pc.characteristic = 'characteristic47'
AND pm.id = pc.product_id
正确的结果是:Product_C。
如果一个以上的特征被同时选择,例如:
SELECT pm.name
FROM product_main pm, product_characteristics pc
WHERE pc.characteristic = 'characteristic47'
AND pc.characteristic = 'characteristic11'
AND pm.id = pc.product_id
没有结果,尽管Product_C两个标准相匹配。 有人可以告诉我,我该如何解决这个问题?