2013-07-18 2 views
0

현재 두 테이블을 병합하려고하는데 두 열에 중복이 있는지 확인하려고합니다. 나는 내가 좋아하는 많은 저를 열 때마다 값을 비교 라트 쿼리를 찾고 있어요 가정 :한 테이블의 열을 다른 열과 비교하는 방법은 무엇입니까?

WHERE 'column1' = 'value1' 

하지만 '값 1'의 자리에 '는 2 열'이

WHERE 'column1' = 'column2' 

것 모든 중복을 계산하는 함수이기도합니다.

이와 같은 기능이 있는지 아는 사람이 있습니까? 지금까지 공백을 작성했습니다.

건배!

어제 중요하지 않습니다. 어제 나 조금 이상한 문제가 생겼습니다. 내 마음이 쇠약 해져서 고마워. 결과가 나오면 업데이트 할게요.

+0

'WHERE column1! = column2'의 문제점은 무엇입니까? 질문이 명확하지 않으므로 샘플 데이터와 원하는 최종 결과를 추가해야합니다. –

+0

두 번째 테이블에서'column2'입니까? 이 테이블을 어떻게 병합합니까? –

+0

아, 이건 내 머리를 둥글게하려고하는 것 뿐이야. 나는 스프레드 시트 작업을하고 오래된 데이터를 새롭고 새로운 관계형 데이터베이스로 변환했으며 이제는 다른 데이터베이스와 병합해야한다고 들었다. 일부 라이센스 키 값에 어떤 형태의 복제가 있었는지 확인하고 싶었습니다. 이 스프레드 시트는이 다른 시스템과 병행하여 만들어졌으며 나는 독특하고 무엇이 아닌지 알려주지 않습니다. – Tinydan

답변

1

사용 뭔가 비슷한에 :

SELECT * 
FROM TABLE A INNER JOIN TABLE B ON (//Whatever condition you need) 
WHERE A.column1=B.column2 
+0

아픈 것 같습니다. 조금 나에게 다가 왔습니다. 어제 왜 조인을 시도하지 않았는 지 궁금 했어! 형식이 일치하지 않는다고 말하면서 오류가 발생하지만 해결해야 할 것이 있습니다. – Tinydan

0

당신은 둘 다 시도 할 수 있습니다하지만 난 첫 번째 예를 선호

select count(*) 
from table1 as t1 
inner join table2 as t2 
on (values you need to compare) 

또는

select count(*) 
( 
from select * 
from table1 as t1 
where column is exists(select * from table2 as t2 on (values you need to compare)) 
) as table 
당신은 INTERSECTEXCEPT을 조사 할 수 있습니다
+0

도움을 주셔서 감사합니다. 내가 가입중인 테이블/데이터베이스는 Latin1_General_CI_AI와 SQL_Latin1_General_CP1_CI_AS라는 각각 다른 언어입니다. 언어를 변경하면 저장 프로 시저 "w"를 찾고 있다고 말한 것입니다. 재미는 끝나지 않습니다! – Tinydan

0

SELECT column1 
FROM table1 
INTERSECT 
SELECT column2 
FROM table2 

이것은 당신에게 그들이에 같은

은 참조하십시오있는 모든 결과를 줄 것이다 : 나는 두 테이블의 비교를 얻기 위해 FULL OUTER JOIN와 함께 할 것 http://msdn.microsoft.com/en-us/library/ms188055.aspx

0

SELECT A.column1, B.column1 
FROM table1 A 
FULL OUTER JOIN table2 B 
ON A.column1=B.column1 

이 테이블의 모든 결과를 제공하지만 하나가 아닌 다른 값은 null 값을 표시합니다.

관련 문제