Tibero에서 테이블 간의 데이터 비교

Tiebro에서 테이블 간의 데이터를 비교할 일이 생겨 비교하는 쿼리를 작성하고 메모합니다.

테이블 TB_A와 TB_B에서 동일한 데이터를 비교하는 쿼리는 아래와 같습니다.

SELECT * FROM TB_A, TB_B
WHERE TB_A.col1 = TB_B.col1
AND TB_A.col2 = TB_B.col2
AND TB_A.col3 = TB_B.col3;

위 쿼리를 실행하면 TB_A와 TB_B의 WHERE 조건에 맞는 행의 데이터를 모두 출력합니다.
하지만 이때 TB_A와 TB_B의 구조가 동일하다면 TB_A의 열과 TB_B의 열이 모두 출력됩니다.

WHERE에서 비교한 데이터 외의 데이터가 다를 수 있다거나 구조가 다르다면 그냥써도 되지만,
구조가 동일하고 비교한 부분이 동일하면 나머지도 동일할 경우 TB_A 또는 TB_B의 열만 가져오면 됩니다.

이 때 SELECT * FROM 부분을 SELECT TB_A.* FROM 으로 바꿔주면 TB_A의 열에 대한 정보만 출력합니다.

다음으로 TB_A 또는 TB_B 한쪽에만 있는 데이터를 볼 때 사용하는 쿼리입니다.

SELECT * FROM TB_A, TB_B
WHERE TB_A.col1 = TB_B.col1(+)
AND TB_A.col2 = TB_B.col2(+)
AND TB_A.col3 = TB_B.col3(+)
AND TB_B.col1 IS NULL;

위 쿼리를 실행하면 TB_A 테이블에만 있는 데이터를 표시합니다.
이 때 데이터가 없는 부분은 NULL로 표시되며 TB_A와 TB_B의 열을 모두 표시하기 때문에 보기에 좋지 않을 수 있습니다.

구조가 동일한 경우 마찬가지로 SELECT * FROM 부분을 SELECT TB_A.* FROM으로 바꿔주면 TB_A의 열에 대한 정보만 볼 수 있습니다.

TB_B 테이블에만 있는 데이터를 표시하고싶다면, WHERE절의 TB_A와 TB_B를 서로 바꿔주면 됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤