2014-11-19 1 views
2

이 테이블이 있다고 가정 해보십시오. this tables.A에 있지만 B에없는 데이터 선택

내가 필요한 것은 A에 있지만 B에는없는 데이터를 가져 오는 것입니다.이 경우 SELECT는 "2"를 반환해야합니다.

이전에 해 보았지만 올바르게 기억하지 못합니다. 나는 이것이 다음과 같을 것이라고 생각합니다 :

SELECT a.* 
FROM A as a 
LEFT JOIN B AS b ON b.column = a.column 

그러나 작동하지 않습니다. 누군가 나를 도울 수 있습니까?

미리 감사드립니다.

답변

9

당신은 필터 만이 누락 : BA에 맞는 여러 행을 가질 수 있다면

SELECT a.* 
FROM A as a 
LEFT JOIN B AS b ON b.column = a.column 
WHERE B.column IS NULL 
4

을,이 쿼리는 더 적합 할 것입니다 :

SELECT a.* 
FROM A as a 
WHERE NOT EXISTS(SELECT NULL FROM B WHERE b.column = a.column) 
+0

감사합니다. 하지만 하위 선택을 피하려고했습니다. –

2

가장을 위해 다음과 같은 작업을해야 데이터베이스 유형

select * 
from A 
where A.column not in (select column from B)