2014-10-09 95 views
-1

我有兩個表的產品和產品的顏色選擇多種顏色的產品?

例如

產品

id name 
1 T Shirt 
2 Jeans 
3 Coat 

產品的顏色

id color  p_id 
1 Green  1 
2 red  1 
3 yellow 1 

T恤有3種顏色綠,紅,黃色。

現在我要選擇具有綠色,紅色,黃色

注意

在查詢返回我這有紅色,綠色,黃色的顏色全部產品名稱。

+0

那你試試? – 2014-10-09 12:41:52

回答

2

要獲得產品有三種顏色,你可以做

select p.name 
from products p 
join productColors pc on pc.p_id = p.id 
where pc.color in ('green','red','yellow') 
group by p.id, p.name 
having count(distinct pc.id) = 3 
+0

謝謝兄弟。 – umair 2014-10-09 13:04:57

+0

現在我有一個問題,我有產品有紅色,綠色,紫色,它有3種顏色,紅色和綠色在那裏。它不應該返回具有紫色的圖像。你能幫助我嗎? – umair 2014-10-09 13:24:44

+1

上面的查詢應該可以工作。使用'where'子句可以指定要查找的顏色,並在'having'子句中添加您在「where」子句中過濾的顏色數量 – 2014-10-09 13:26:28