본문 바로가기

안돼니? 야 나두

[MSSQL] 2개의 테이블에서 중복 데이터만 찾는 쿼리문

회원 정보 중 동명이인인 사람들만 찾는 쿼리문

2개의 테이블중 키 값이 되는것은  MEMBER_CODE 뿐이고

회원명은 하나의 테이블에서만 가지고 있다.

 MEMBER_INFO

 member_code

 member_name


CUSTOMER_CREDIT 

 member_code


여기서 2개의 테이블에서 MEMBER_CODE 는 모두 존재하는 컬럼이기 때문에 중복을 찾아낼 수 있지만 MEMBER_INFO 의 MEMBER_NAME 은 MEMBER_INFO 에만 존재하는 컬럼이기 때문에 중복을 찾을 수 없다.


이를 해결하기 위해서 가상의 테이블로 만들어주는 WITH 를 사용하여 MEMBER_CODE 로 조인한 데이터 결과 값을 가상의 테이블로 만들어 중복 데이터를 찾는다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
with member_sell as 
select b.member_code, member_name 
from member_info a
inner join 
customer_credit b
on a.member_code = b.member_code
group by b.member_code, member_name )
select * from member_sell 
where member_name in 
(select member_name 
from member_sell 
group by member_name 
having count(*> 1 )
order by member_name asc
cs