SQL 수정
1AND JIR_SEQ NOT IN (
SELECT JIR_SEQ
FROM JOB_INTERN_REPORT ST1
WHERE (
SELECT COUNT(*) FROM JOB_INTERN_REPORT
WHERE JIM_SEQ = ST1.JIM_SEQ AND JIR_NUM = ST1.JIR_NUM AND PROF_ID = ST1.PROF_ID
) = 2
AND PROF_TYPE = 'JID'
)
먼저, "JOB_INTERN_REPORT"라는 테이블에 대한 조건을 나타냅니다.
다음으로, "JOB_INTERN_REPORT" 테이블에서 "JIR_SEQ" 컬럼의 값이 서브쿼리의 결과와 일치하지 않는 경우를 선택합니다. 서브쿼리는 "JIR_SEQ" 컬럼을 가져오는데 사용되며, 이것은 주어진 조건을 충족하는 "JOB_INTERN_REPORT" 테이블의 데이터를 필터링하기 위해 사용됩니다.
서브쿼리부터 살펴보겠습니다. 서브쿼리의 목적은 "JOB_INTERN_REPORT" 테이블에서 특정 조건을 만족하는 "JIR_SEQ" 값을 가져오는 것입니다.
서브쿼리에서는 "JOB_INTERN_REPORT" 테이블을 "ST1"이라는 별칭으로 사용합니다. 이 테이블에서 다음 조건을 만족하는 "JIR_SEQ" 값을 선택합니다:
"JIM_SEQ" 컬럼이 서브쿼리의 "ST1.JIM_SEQ" 값과 동일하고,
"JIR_NUM" 컬럼이 서브쿼리의 "ST1.JIR_NUM" 값과 동일하며,
"PROF_ID" 컬럼이 서브쿼리의 "ST1.PROF_ID" 값과 동일하고,
해당 조건을 만족하는 레코드의 수가 2개인 경우 (COUNT(*) = 2).
마지막으로, 서브쿼리에서 선택된 "JIR_SEQ" 값을 가진 레코드 중에서 "PROF_TYPE" 컬럼의 값이 'JIM'인 경우를 선택합니다.
결론적으로, 이 쿼리는 "JOB_INTERN_REPORT" 테이블에서 "PROF_TYPE"이 'JIM'이고, "JIM_SEQ", "JIR_NUM", "PROF_ID"가 일치하는 레코드가 2개인 "JIR_SEQ" 값을 가지지 않는 레코드를 선택합니다.