2012-08-17 2 views
0

그래서 열의 각 행과 다른 행의 모든 ​​행을 비교하여 그 행을 필터링하는 방법을 알아 내려고 노력하고 있습니다. 비교중인 열에 존재하지 않습니다. 나는이 같은 행 단위 기본에 두 개의 열을 비교하는 방법을 이해 :한 열에있는 데이터 행이 다른 열에 존재하지 않는 곳을 찾으십시오.

select table1.column1 
from table1 inner join 
    table2 on table1.id = table2.id 
where column1 <> column2 

하지만 표 2에서 2 열의 모든 행에 대해, 컬럼의 표에서 행을 비교하고, 컬럼의 행을 찾으려면 그것은 column2에 전혀 존재하지 않습니다. 그래서이 값 컬럼과 같이 될 것이다 :

Column1  Column2 
1    2 
2    1 
4    3 
5    5 
7    6 

을 그리고 SQL 후에는 다음과 같이 될 것입니다 :

Column1 
4 
7 

답변

1

으로 시도 NOT IN :

select table1.column1 
from table1 
where table1.column1 not in (select table2.column2 from table2) 
0
select column1 from table1 as t1 where not exists 
(select column2 from table2 as t2 where t1.id=t2.id) 
0

두 테이블 사이의 열을 비교하는 경우

SELECT table1.column1 FROM table1 
WHERE table1.column1 NOT IN 
(SELECT table2.column2 as column1 FROM table2) 

당신은 같은 테이블에 대해 2 열로, 컬럼을 비교하면

SELECT table1.column1 FROM table1 
WHERE table1.column1 NOT IN 
(SELECT table1.column2 as column1 FROM table1) 
0
select t1.id 
from ... t1 
left join ... t2 on t1.id = t2.id 
where t2.id is null 
관련 문제