2014-04-16 4 views
0

SQL Server 2008에서 일하고 있습니다. 각각에 공통 키가있는 테이블이 여러 개 있습니다. 테이블 중 하나를 시작하여 다른 테이블에없는 레코드 만 필터링하려고한다고 가정 해보십시오. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? WHERE 각 후 절을하나의 테이블을 필터링하기 위해 여러 테이블에 가입

SELECT 
A.col_1 
FROM Table_A A 
LEFT JOIN Table_B B 
ON A.col_1 = B.col_x 
WHERE B.col_x IS NULL 

난 그냥 계속 사용하십니까 조인 : 일반적으로

, 나는 2 개 개의 테이블에 대한 다음과 같은 일을 할 것인지 알아? 경우 3 개 테이블의

, 나는 다음을 기대하지만, 나는 그것이 작동하지 않는 것을 알고 :

SELECT 
A.col_1 
FROM Table_A A 
LEFT JOIN Table_B B 
ON A.col_1 = B.col_x 
WHERE B.col_x IS NULL 
LEFT JOIN Table_C C 
ON A.col_1 = C.col_i 
WHERE C.col_i IS NULL 

는 위의 질의에 어떤 문제가 있습니까?

답변

0

나는 미래의 방문자를 돕기 위해 귀하의 답변을 질문에서 제외하고 여기에 게시하고 있습니다.

SELECT 
    A.col_1 
FROM Table_A A 
LEFT JOIN Table_B B 
ON A.col_1 = B.col_x 
LEFT JOIN Table_C C 
ON A.col_1 = C.col_i 
WHERE 
(
    B.col_x IS NULL 
    AND 
    C.col_i IS NULL 
) 
관련 문제