2011-08-28 3 views
0

중복 레코드를 한 번만 선택하는 것은 아닙니다. 대신 중복되지 않는 테이블에서 레코드를 선택하지 않을 것입니다. 레코드는 한 번만 테이블에 있습니다.테이블에있는 모든 레코드를 한 번만 선택하십시오.

예 : 표 cat_prod의 에는 id_category 및 id_product 열이 있습니다. 하나의 제품이 여러 카테고리에 속할 수 있습니다. 하나의 카테고리에만있는 제품을 어떻게 선택할 수 있습니까?

답변

2
SELECT id_product 
FROM cat_prod 
GROUP BY id_product 
HAVING count(distinct id_category) = 1 

당신은 수있는 제품 ID별로 그룹화 만 HAVING 절에 COUNT(*) = 1을 가지고 그 사람들을 선택합니다.

+0

+1, 좀 더 안전하게'having (distinct id_category) = 1 '이 있습니다. – Andomar

+0

@Andomar가 쿼리를 개선해 주셔서 감사합니다. – Jacob

관련 문제