2012-04-25 3 views
2

일부 타사 유틸리티로 한 테이블을 업데이트 한 상황이 있는데 원래 테이블과 비교하여 해당 테이블을 확인하려고합니다 올바른 업데이트 및 삽입을 수행했습니다.테이블의 모든 필드에서 완전히 일치하지 않는 모든 레코드를 가져옵니다. JOIN

그래서,이 같은 일을하고 싶습니다,하지만 난 꽤 구문 모른다 : 나는 명시 적으로 1 모든 일을 작성하지 않고도 모든 필드를 비교할 수있는 방법

SELECT * FROM table1 AS a RIGHT OUTER JOIN table2 AS b WHERE 
    <there is some difference between the row from a and the row from b, 
    regardless of which column it's in> 

을 ?

편집 : 나는 또한 내가 테이블의 복사본 업데이트를했다는 것을 언급, 그래서 가정해야 원본과 업데이트 된 복사본입니다.

답변

4

은 당신이 사용해야하는 것은 MINUS 쿼리

select field1, field2, field3, field4 
    from table1 
except 
select field1, field2, field3, field4 
    from table2 

이 (입력란 4 필드 1, FIELD2, FIELD3) 표 2에서 찾을 수없는 그 데이터 표에서 모든 행을 반환합니다. Warining : 다른 방법은 아니므로 table2가 아닌 table1에있는 데이터가 필요한 경우 table2 MINUS table1을 수행하는 두 번째 쿼리를 수행해야합니다.

+2

TSQL의 빼기 관계 연산자는 'EXCEPT'입니다 (표준 SQL과 동일). – onedaywhen

+0

일단 EXCEPT로 변경하면 효과가있는 것처럼 보입니다. –

+0

@onedaywhen 미안 해요, 제가 오라클 개발에서 왔습니다 :) –

관련 문제