subQuery

Sub Query

서브 쿼리 (Sub Query)

=> 쿼리문 안에 쿼리문을 실행하는 기법 (SELECT절/ WHERE절/FROM 절 안에 들어가는 쿼리를 통칭하여 서브쿼리) => 성능 문제를 생각하면서 사용해야 한다.

join이용하여 데이터를 추출한 방법

select la.lano, l.titl, m.name, s.work, la.rdt, r.name, m2.name, mr.posi
from lect_appl la 
        inner join memb m on la.mno=m.mno
        inner join stnt s on la.mno=s.mno 
        inner join lect l on la.lno=l.lno
        left outer join room r on l.rno=r.rno 
        left outer join memb m2 on l.mno=m2.mno 
        left outer join mgr mr on l.mno=mr.mno;

select 절에 서브쿼리 사용하기

  1. 1단계: 수강신청 데이터를 출력

select 
  la.lano, 
  la.lno, 
  la.mno, 
  date_format(la.rdt, '%Y-%m-%d') reg_dt
from lect_appl la;
  1. 2단계 : 서브 쿼리를 이용하여 강의명을 가져오기

  1. 3단계 : 서브 쿼리를 이용하여 학생명을 가져오기

from 절에 서브쿼리 사용하기

  1. 0단계 : 강의 정보를 가져온다.

  2. 1단계 : 강의 상세 정보를 가져오는 select를 준비한다. => 서브 쿼리를 이용하여 강의실 이름과 매니저 이름, 직위 정보를 가져오기

  1. 2단계: 위에서 준비한 select 결과를 가상 테이블로 사용하여 기존의 lect_appl 테이블과 조인한다

  • from 절에서 반복적으로 사용하는 서브 쿼리가 있다면, 가상 테이블인 view로 정의해놓고 사용하는 것이 편하다.

  • 위의 질의문을 view를 사용하여 다시 작성해보자!

where 절에 서브쿼리 사용하기

  • 과장 또는 대리 매니저가 담당하고 있는 수강 신청만 추출하기

Last updated

Was this helpful?