A 테이블에는 1,2,3,4,5,6
B 테이블에는 2,3
C 테이블에는 3,4
A테이블에서 B, C 테이블의 중복되는 데이터 제외하고 1, 5, 6 만 조회를 하고 싶습니다.
SELECT *
FROM A
WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.NO = A.NO)
AND NOT EXISTS (SELECT 1 FROM C WHERE C.NO = A.NO)
NOT EXISTS 두번 사용 시 Subquery returned multiple rows where a scalar value was expected. 오류가 발생합니다.
오류 없이 A테이블의 1, 5, 6 만 조회 하는 방법이 있을까요?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | WITH A AS ( SELECT 1 NO FROM DUAL UNION ALL SELECT 2 NO FROM DUAL UNION ALL SELECT 3 NO FROM DUAL UNION ALL SELECT 4 NO FROM DUAL UNION ALL SELECT 5 NO FROM DUAL UNION ALL SELECT 6 NO FROM DUAL ) , B AS ( SELECT 2 NO FROM DUAL UNION ALL SELECT 3 NO FROM DUAL ) , C AS ( SELECT 3 NO FROM DUAL UNION ALL SELECT 4 NO FROM DUAL ) SELECT * FROM A WHERE NOT EXISTS ( SELECT 1 FROM B WHERE B. NO = A. NO ) AND NOT EXISTS ( SELECT 1 FROM C WHERE C. NO = A. NO ) ; |
예제 쿼리로는 에러가 없는데요? 실제 쿼리의 Select 절에 사용된 함수등이 문제인것 같네요..