我有一個規範化的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兩個標準相匹配。 有人可以告訴我,我該如何解決這個問題?