2012-04-30 1 views
4

누군가가이 어려움을 겪고있는 것을 도와 줄 수 있습니까?sql - COMPOSITE 키의 고유성을 확인하십시오.

이 유효한지 여부를 내가 그렇게 검증의 작은 부분이 내 차 키가이 경우에

SELECT order_id, COUNT(order_id) 
FROM temp_order 
GROUP BY order_id 
HAVING (COUNT(order_id) > 1) 

고유한지 확인 ORDER_ID이다 엔티티 무결성 구성, 일부 데이터를 확인하고 싶습니다 기본 키. 이 쿼리는 정상적으로 작동합니다.

문제 :

지금은 2 개 필드로 복합 기본 키가 다른 테이블의 temp_orditem 있습니다 ORDER_ID, PRODUCT_ID을.

기본 키가 고유한지 (즉 2 개의 필드를 함께 사용하여 조합 한 것) 확인할 수 있습니까? 다음과 같이 할 수 있습니까?

SELECT order_id, product_id, COUNT(order_id), COUNT(product_id) 
FROM temp_order 
GROUP BY order_id, product_id 
HAVING (COUNT(order_id) > 1 AND COUNT(product_id)>1) 

답변

10

난 그냥이 작성합니다

SELECT order_id, product_id, COUNT(*) AS x 
FROM temp_order 
GROUP BY order_id, product_id 
HAVING x > 1 
+1

+1, 5 초 : – Chad

10

이것은 당신이 필요로하는 쿼리입니다 :

select order_id, product_id, count(*) 
from temp_order 
group by order_id, product_id 
having count(*) > 1 
+2

+1 나를 이길로 이길 5 초 ;-) –