2010-08-11 3 views
0

sybase에 있습니다. 나는 내가 할 경우 기본 키 목록에없는 db 테이블에서 키 찾기

을의 부하를 가지고 :

의 핵심 (약 2000 키 ... 목록 ...)

내가 1700 결과를 얻을 테이블에서

선택 키 . 내 목록에있는 ~ 300 개의 항목 목록을 가져 오는 가장 쉬운 방법은 무엇입니까?

그것은 쉽게해야 뭔가 것 같다,하지만 ... 그것을 해결하지 못할

편집 : 내 테이블 키 1,2,4가있는 경우 예를 들어 순서

에있을 수 있습니다 같은데 그리고 내 목록은 1,2,3입니다. 그러면 저에게 답을 줄 것입니다. 3 - 테이블에없는 내 목록의 요소. 'NOT IN'을 사용하면 4라는 답이 나옵니다.

+1

sybase가이를 지원합니까? 키가없는 테이블에서 키를 선택하십시오. (약 2000 개의 키 목록 ...) – LesterDove

+0

테이블에없는 테이블이나 테이블에없는 테이블을 목록에서 원하는 경우 ? – AllenG

+0

전자. 나는 편집했다. – PaulJWilliams

답변

1

요소를 선택 가능하게 만들기 위해 요소를 자신의 테이블에 넣어야한다고 생각합니다. 그것은 ...

SELECT key 
    FROM my_new_table 
    WHERE key NOT IN (SELECT key 
          FROM Table); 

(또는 위의 쿼리의 속도가 빠른 버전) 그 이후 일반 항해입니다.

+0

+1 : 명확한 설명을 감안할 때, 이것이 가장 확실한 방법입니다. 2000 개 항목 (또는 그 이상)의 경우 어쨌든 (일시적이든 영구적이든) 모든 것을 테이블에 넣는 것이 가장 좋습니다. –

0

귀하의 답변은 실제로 @BrianHooper 솔루션에 의해 해결되지만 귀하의 질문에 대한 설명이 부족합니다.

숫자의 "목록"을 언급했거나 인접하지 않거나 적용 할 수 없습니다. 내 의견에 대한 응답으로, 당신은 당신이 두 테이블을 가지고 있다고 결코 말한 적이 ...

그래서, 그것은 단지 다음과 같은 이유로 나타납니다 : 당신은 그것에 2,000 항목 마스터 인벤토리 테이블이 있습니다. 또한, 당신은 지금까지 팔린 모든 재고의 판매 활동 테이블을 가지고 있습니다 ...이 테이블에는 10,000 개의 라인이있을 수 있습니다.이 라인 중 많은 품목이 여러 번 판매 될 수 있습니다 ... 그러나 일부 품목은 10,000 판매. 목록에서 2000 년에 절대로 판매하지 않은 품목을 알고 싶습니다.

내 검색어는 위의 시나리오를 기반으로하지만 실제 시나리오와 쌍을 이루어야합니다.

select 
     MyItemID 
    from 
     MyInventoryTable 
    where 
     MyItemID NOT IN 
       (select SoldItemID 
        from SalesData); 
관련 문제