2014-04-17 2 views
0

나는 이와 같은 논리를 가지고 있습니다.다른 레코드 테이블에 조인 조건이 추가되었습니다.

INSERT INTO TGT_TABLE 
SELECT 
* 
FROM SRC_TABLE 
INNER JOIN REF_TABLE 
WHERE SRC.ID = REF.ID 

WHEN NOT MATCHED 
INSERT INTO HOLDING_TABLE 
; 

삽입 선택 문이 있는데 조건을 만족하지 않는 레코드를 다른 테이블에 기록하려고합니다.

어떻게 이것을 SQL로 작성합니까?

답변

1

먼저 조인 구문이 잘못 올바른은

이제
INSERT INTO TGT_TABLE 
SELECT 
* 
FROM SRC_TABLE 
INNER JOIN REF_TABLE 
ON SRC.ID = REF.ID 

일치하는 열 값은 두 테이블에 존재하지 않는있는 해당 행을 가져 오기 위해이, 왼쪽은 REF_TABLE 열에 NULL 값을 줄 것이다 가입 할 수있다 일치하지 않는 행의 경우 WHERE 절에서 해당 행을 가져옵니다.

INSERT INTO HOLDING_TABLE 
SELECT 
* 
FROM SRC_TABLE 
LEFT JOIN REF_TABLE 
ON SRC.ID = REF_TABLE.ID 
WHERE REF_TABLE.ID is null