Where 절의 조건과 존재하는 것과 존재하지 않는 조건의 차이에 대해서는 의심의 여지가 있습니다. 나는 첫 번째 또는 두 번째 방법을 사용할 때 동일한 결과를 얻지 못할 것임을 알고 있지만, 누군가 이유를 설명하는 데 신경을 쓰나요? 예를 들어 존재 조건과 차이 조건
,SELECT ACCOUNT_NO,
CLIENT_NAME
FROM ACCOUNT a
LEFT JOIN CLIENT b
ON a.ACCOUNT_NO = b.ACCOUNT_NO
WHERE ACCOUNT_TYPE NOT IN ('A', 'B', 'C')
AND
SELECT ACCOUNT_NO,
CLIENT_NAME
FROM ACCOUNT a
LEFT JOIN CLIENT b
ON a.ACCOUNT_NO = b.ACCOUNT_NO
WHERE NOT EXISTS (SELECT *
FROM ACCOUNT_DET t1
LEFT JOIN ACCOUNT t2
ON t1.ACCOUNT_NO = t2.ACCOUNT_NO
WHERE ACCOUNT_TYPE NOT IN ('A', 'B', 'C'))
?
나를 이해하시기 바랍니다. 테이블 ACCOUNT_DET은 (는) ACCOUNT와 거의 동일한 필드를 가지고 있지만이 필드는 제가 사용했던 것보다 더 단순화 된 쿼리입니다.
하위 쿼리는 상관 관계가 없습니다. 즉, 하위 쿼리에 행이있는 경우 외부 쿼리는 행을 반환하지 않습니다. 이 방법을 사용하는 경우 부속 조회를 외부 조회와 상관시켜야합니다. –
존재 vs IN http : // stackoverflow.com/questions/24929/difference-between-in-in-in-sql – SoulTrain
내가 무슨 말을하는지, 내 쿼리를 EXISTS가 아닌 NOT EXISTS라는 하위 쿼리로 변경한다고 가정 해 봅시다. 나는 얻다? 이 두 절의 차이점을 이해하고 싶다면 원하는 경우 쿼리를 무시할 수 있습니다. – user2517370