학생부 table 과 지역직업table이 있습니다.
학생부 table
이름 |
나이 | 직업 | 지역 | 기관코드 (PK) |
이이일 | 29 | 학생 | 대구 | 111 |
이이삼 | 25 | 학생 | 청주 | 111 |
이이사 | 26 | 직장인 | 경주 | 111 |
이이오 | 26 | 학생 | 대구 | 111 |
이이육 | 26 | 학생 | 대구 | 111 |
이이칠 | 25 | 학생 | 청주 | 111 |
지역,직업table
직업 | 지역 | 기관코드 |
학생 | 대구 | 111 |
학생 | 청주 | 111 |
직장인 | 경주 | 111 |
|
select 이름, 나이, 직업, 지역, 기관코드 from 학생부table a where not exists (select 1 from 지역,직업table b where b.기관코드 = a.기관코드 and b.지역 = '대구' and b.직업 = '직장인')
이렇게하면 이이삼, 이이칠이 나오지만 이이삼만 나오게 쿼리문을 만들고 싶어요..
not exists서브쿼리의 내용을 추가하되, 학생부table where 절에는 not exists 서브쿼리만 쓰고 가능할까요???
.. 혹시 이런걸 원하시나요? WITH V_STU (name, age, job, area, comp) AS ( SELECT '이이일', 29, '학생', '대구', '111' FROM DUAL UNION ALL SELECT '이이삼', 25, '학생', '청주', '111' FROM DUAL UNION ALL SELECT '이이사', 26, '직장인', '경주', '111' FROM DUAL UNION ALL SELECT '이이오', 26, '학생', '대구', '111' FROM DUAL UNION ALL SELECT '이이육', 26, '학생', '대구', '111' FROM DUAL UNION ALL SELECT '이이칠', 25, '학생', '청주', '111' FROM DUAL UNION ALL SELECT '이이팔', 28, '공무원', '광주', '111' FROM DUAL UNION ALL SELECT '이이구', 29, '공무원', '부천', '111' FROM DUAL ), V_ADD (job, area, comp) AS ( SELECT '학생' , '대구', '111' FROM DUAL UNION ALL SELECT '학생' , '청주', '111' FROM DUAL UNION ALL SELECT '직장인', '경주', '111' FROM DUAL ) SELECT * FROM V_STU A WHERE NOT EXISTS (SELECT 1 FROM V_ADD B WHERE A.job = B.job AND A.area = B.area AND A.comp = B.comp AND B.job = '학생' AND B.area = '대구');