2014-12-09 7 views
-1

도움이 열이 기록은 정확하게 표 2SQL 제가 열을 표 1의 1 개 데이터를 선택할 필요가 SQL 쓰기

예와 같은 일치하는 경우에만 일치하는 레코드 세트를 기반으로 열 데이터를 선택 표

Column1 Column2 
A  1 
A  2 
A  3 
B  1 
B  2 
B  3 
B  4 

표 2

Column1 Column2 
A  1 
A  2 
A  3 
A  4 
B  1 
B  2 
B  3 
B  4 
나는 B의 2 열 데이터부터 열 1 만 B를 볼 필요가

정확하게 표 2.

일치

케이스

표 1 열 1 열 2 C 1 C 2 C 3 C 5 표 2 열 1 열 2 C 1 C 2 C 3 C 4

C의 shouldn 기록이 일치하지만 기록이 일치하지 않아도 고려해 봐야합니다.

+1

전혀 시도한 적이 있습니까? – mmmmmpie

+0

내부 조인을 시도했지만 그 다음 1/2/3가 테이블 2와 일치하므로 A도 보았습니다. – user3723562

+0

시도한 쿼리를 업로드 할 수 있습니까? – mmmmmpie

답변

0

위와 같이 할 수 있습니다. 외부 join 및 집계 번째 :

select t2.column1 
from table2 t2 left join 
    table1 t1 
    on t2.column1 = t1.column1 and t2.column2 = t1.column2 
group by t2.column1 
having count(*) = count(t1.column1); 

having 절은 보장 그 원래의 데이터 일치하는 모든 행. 이 경우 column2에는 두 테이블의 주어진 column1 값에 대해 중복 값이 ​​없다고 가정합니다.

0

어쩌면이 시도 : 꽤하지

select distinct col1 from t1 
where col1 not in 
(select col1 from 
    (
    select t2.col1,t2.col2 
    from t2 
    minus 
    select t1.col1,t1.col2 
    from t1 
    ) 
) 

합니다. 그러나 일하는 것처럼 보인다. SQLFiddle

관련 문제