2013-01-01 3 views
0

가능한 중복 :
SQL - find records from one table which don’t exist in another찾기 기록

나는이 MySQL의에서 다음 (간체) 스키마 :

simplified schema

화살표는 하나 (화살표가없는 쪽)에서 많은 (화살표가있는) 관계를 나타냅니다.

고객에게 delivery_zone_weeks가 weekly_order가 없는지 확인하고 싶습니다.

+1

당신이 당신의 DB 스키마를 포함 할 수 있습니다 필요 조금 위험 할 것 같다? – Sablefoste

+0

생성하려는 쿼리의 결과 집합 행 몇 개를 포함하십시오. –

+0

http://stackoverflow.com/questions/544094/mysql-finding-rows-that-dont-take-part-in-a-relationship?rq=1을 참조하십시오. 이 두 가지 모두 ** ** ** ** 사이드 바에 나열되어 있습니다. 어떻게 검색에 그리워합니까? – Barmar

답변

0

구조, 샘플 데이터 및 예상 결과없이 완벽하게 이해하기 어렵지만, 당신이

SELECT * FROM DELIVERY_ZONE_WEEK WHERE ID_DELIVERY_ZONE_WEEK NOT IN 
(SELECT WO.ID_DELIVERY_ZONE_WEEK FROM CUSTOMER C 
JOIN SHIPPING_ADDRESS SA 
    ON C.ID_CUSTOMER = SA.ID_CUSTOMER 
JOIN WEEKLY_ORDER WO 
    ON SA.ID_SHIPPING = WO.ID_SHIPPING 
WHERE C.ID_CUSTOMER = @ID_CUSTOMER)