KMNUMB_TB (과정테이블)
=====================
LEC_CD(PK) : 과정코드
DISPARTY(PK) : 차수
----------------------
LEC_DTL_NM : 과정명
REG_ID : 등록자
KMEDUOBJ_TB (과정-학습대상 테이블)
=====================
LEC_CD(PK) : 과정코드
DISPARTY(PK) : 차수
SCHOOL_GB(PK) : 학교구분 : 초등,중등,고등
GRADE_GB(PK) : 학년구분 : 1,2,3,4,5,6학년
-------------------------
REG_ID : 등록자
위의 두 테이블(KMNUMB_TB, KMEDUOBJ_TB)이 1:M 관계로
되어있습니다.
과정테이블 : KMNUMB_TB('1', 1, '컴퓨터이해', 'ADMIN')
('2', 1, '수학의이해', 'ADMIN')
('3', 1, '국어의이해', 'ADMIN')
과정-학습대상 테이블 : KMEDUOBJ_TB('1', 1, 'MIDDLE', 1,
'ADMIN')
('2', 1, 'HIGH', 1, 'ADMIN')
위와 같이 자료가 들어가 있을때
과정테이블 리스트(목록)를 출력하고자 할때
과정테이블에는 과정코드='3'이고 차수=1인 '국어의이해'과정이
있지만
과정-학습대상 테이블에는 과정코드가 '3'이고 차수가 1인
학습대상이 없습니다.
이럴때
리스트 출력시 쿼리를 어떻게 해야 하나요?
그리고
리스트 출력시 과정-학습대상을 검색조건으로 가진다면
어떻게 쿼리를 짜야하나요?
SELECT *
FROM (SELECT ROWNUM rn, TARGET.*
FROM (SELECT DISTINCT A.LEC_CD,
A.DISPARTY,
A.LEC_DTL_NM
FROM KMNUMB_TB A,
KMEDUOBJ_TB B
WHERE A.LEC_CD = B.LEC_CD(+)
AND A.disparty = B.disparty(+)
AND (B.school_gb IS NULL OR B.school_gb LIKE '%%')
AND (B.grade_gb IS NULL OR B.grade_gb LIKE '%%')
ORDER BY A.lec_cd ASC) TARGET)
WHERE rn BETWEEN 0 and 10
ORDER BY rn DESC
위와 같이 하면...
과정테이블의 과정코드가 '3'이고 차수가 1인 과정은 리스트에
나타나지 않습니다.
|