2014-10-09 2 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 색 그린, 레드, 노랑.

은 지금은 녹색, 빨강, 노랑 색상

주 쿼리에서

나에게 붉은 색, 녹색 색상, 노랑 색상이있는 모든 제품을 반환하는이 제품 이름을 선택합니다. 당신은 당신이 무엇을하려고 않았다에게

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

을 할 수 –

답변

2

는 3 색을 가진 제품을 얻으려면?
+0

형님, 고마워요. – umair

+0

지금 나는 빨간색, 녹색, 보라색의 3 가지 색상을 가진 제품을 가지고 있고, 빨간색과 초록색이 하나 더있는 문제가 있습니다. 자주색을 나타내는 이미지를 반환해서는 안됩니다. 이걸로 나를 도울 수 있니? – umair

+1

위의 쿼리가 작동합니다. 'where' 절을 사용하면 찾고있는 색상을 지정할 수 있고'having' 절에서'where' 절에서 필터링 한 색상의 수를 더할 수 있습니다 –

관련 문제