2012-10-29 4 views
2

나는 이와 같은 시나리오를 가지고 있는데, 두 테이블 table_1과 table_2가 있습니다. 두 테이블 모두 column_1이라는 공통 열을 가지고 있습니다 (foreign_Key 제약 없음 !!). Table_1은 table_2에없는 일부 추가 행을 가질 수 있습니다 (즉, table_2는 table_1의 하위 집합입니다). table_1에만 있지만 table_2에는없는 모든 항목을 나열하고 싶습니다. 같은 목적으로 SQL 쿼리를 작성하는 데 도움이됩니다. 미리 감사드립니다. 두 테이블이 서로 관련이없는 경우가 전체 테이블 스캔을 필요로하지 않도록일부 조건을 기반으로 테이블로부터의 쿼리

답변

3
SELECT a.* 
FROM table1 a 
     LEFT JOIN table2 b 
      on a.column_1 = b.column_1 
WHERE b.column_1 IS NULL 

더 나은

1
select * from table1 
inner join table2 on table1.column1=table2.column1 
0
(성능을 느리게하는 를) table2.column_1table1.column_1에 인덱스를 추가하고
select a.* from table1 a left outer join table2 b on a.col1=b.col1; 
관련 문제