outer 생략 가능
-- 학생테이블의 모든 행을 가져오고, 수강테이블에서 학번이 일치하는 행만 가져오기
select ST.*, SU.*
from tb_student ST left join tb_sugang SU
on ST.hakno=SU.hakno;
학번을 기준으로 학생 테이블과 수강 테이블이 일치하지 않는 행에는 null 값이 들어가 있다.
문제 1
문1)left join를 이용해서 수강신청을 하지 않은 학번, 이름, 과목코드 조회하시오
select st.hakno, st.uname, su.hakno, su.gcode
from tb_student st left join tb_sugang su
on st.hakno=su.hakno
where su.hakno is null;
문제 2
문2)right join를 이용해서 수강신청을 하지 않은 학번, 이름, 과목코드 조회하시오
select su.hakno, su.gcode, st.hakno, st.uname
from tb_sugang su right join tb_student st
on su.hakno=st.hakno
where su.hakno is null;
(+) 기호를 이용한 테이블 조인
(+) 기호는 일치되지 않는 행이 존재하는 않은 쪽에 붙인다
select st.hakno, st.uname, su.hakno, su.gcode
from tb_student st, tb_sugang su
where st.hakno=su.hakno(+); -- left join
select su.hakno, su.gcode, st.hakno, st.uname
from tb_sugang su, tb_student st
where su.hakno(+)=st.hakno; -- right join
'웹개발 교육 > Database' 카테고리의 다른 글
[24일] Database (11) - 종합연습문제 (0) | 2022.08.29 |
---|---|
[24일] Databese (10) - 모조 칼럼 (0) | 2022.08.29 |
[23일] Database (8) - 테이블 조인(inner join) (0) | 2022.08.26 |
[22일] Database (7) - 학사관리 (0) | 2022.08.25 |
[22일] Database (6) - 모델링 (0) | 2022.08.25 |