2017-10-17 5 views
0

중복 항목을 매핑하고 다른 테이블에서 데이터를 가져 오는 SQL의 방법이 있습니까? 테이블 2에서 원본 파일 이름을 매핑해야하지만 데이터가 테이블 1에서오고 매핑 참조로 새 파일 이름을 사용합니까? 나는 파티션 ROW_NUMBER을하려고했지만, 난SQL 매핑 다른 테이블의 중복 항목

표 어디서나 1려고하고 있지 않다 :

new filename  original filename 
text_001.pdf  test1333.pdf 
text_001.pdf  test4443.pdf 
hello2332.pdf  world1234.txt 
hello2332.pdf  world3331.txt 

표 2 :

EE  new filename  
00001 text_001.pdf  
00001 text_001.pdf 
00002 hello2332.pdf 
00002 hello2332.pdf 

OUPUT 테이블 :

EE  new filename  original filename(entries coming from table 1) 
    00001 text_001.pdf  test1333.pdf 
    00001 text_001.pdf  test4443.pdf 
    00002 hello2332.pdf  world1234.txt 
    000002 hello2332.pdf  world3331.txt 
+0

을 JOIN을 권 해드립니다! 아마도 LEFT JOIN, 파일 이름이 바뀌지 않은 table2의 행을 원한다면 – jarlh

+0

'select * from table2 t2 join table1 t1 on t1.new_filename = t2.new_filename'? –

+1

첫 번째 테이블의 새 파일 이름에 중복을 구분할 열이 없으므로이 작업을 수행하는 일반적인 방법은 없습니다. 데이터를 수정해야합니다. –

답변

1
;WITH xx AS 
(SELECT DISTINCT 
[EE], 
[new filename] 
FROM [Table 2] 
) 
SELECT 
xx.[EE], 
xx.[new filename], 
a.[original filename] 
FROM xx 
LEFT JOIN [table 1] as a 
ON a.[new filename] = xx.[new filename] 
+0

첫 번째 서브 쿼리 ('select distinct' 사용)는 table2에서 중복 된 것을 제거한 다음 원본 파일에 대한 왼쪽 조인은 새 파일을 이전 파일과 관련시킵니다. CTE 사용 (위 그림 참조)은 완전히 선택 사항입니다. –

+0

@Used_By_ 이미 귀하의 아이디어가 작동했습니다 :) 감사합니다. CTE를 사용할 필요가 없었습니다. 내 쿼리에서 누락 된 것은 뚜렷합니다 :) – yope

+0

결과가 표 2를 업데이트해야하는 경우는 어떨까요? 뚜렷한 효과가 있다고 생각하지 않습니까? – yope