[ORACLE] STUDY_2DAY(서브 쿼리)

 

서브쿼리(SubQuery) 정리

(방법1) Select 조회 칼럼 대신에 사용하는 경우
 : 단일컬럼의 단일행만 조회

(방법2) Where 절에 사용하는 경우
  In () : 단일컬럼의 단일행 또는 다중행 조회 가능
  =     : 단일컬럼의 단일행만 조회 가능

 

 



문제 1

 

* ORDER BY


-- 취미가 "수영"인 회원들 중에 마일리지의 값이 1000 이상인 
-- 회원아이디, 회원이름, 회원취미, 회원마일리지 조회
-- 정렬은 회원이름 기준 오름차순
Select mem_id, mem_name, mem_like, mem_mileage
From member
Where mem_like = '수영'
  And mem_mileage >= 1000
Order By mem_name Asc;

---------------------------------------------------------

 

문제 2

 

* Where 서브쿼리


-- 김은대 회원과 동일한 취미를 가지는
-- 회원 아이디, 회원이름, 회원취미 조회하기


Select mem_id, mem_name, mem_like
From member
Where mem_like = (Select mem_like
                    From member
                    Where mem_name = '김은대');
                    
----------------------------------------------------------------                    

 

문제 3

 

* SELECT 서브쿼리

                     
주문내역이 있는 회원에 대한 정보를 조회하려고 합니다.
회원아이디, 회원이름, 주문번호, 주문수량 조회하기


Select cart_member, cart_no, cart_qty,
        (Select mem_name 
         From member
         Where mem_id = cart_member) as name
From cart;

 

----------------------------------------------------------------      

 

문제 4

 

* SELECT  서브쿼리


주문내역이 있는 회원에 대한 정보를 조회하려고 합니다.
회원아이디, 회원이름, 주문번호, 주문수량, 상품명 조회하기


Select cart_member, cart_no, cart_qty,
        (Select mem_name 
         From member
         Where mem_id = cart_member) as name,
         (Select prod_name
          From prod
          Where prod_id = cart_prod) as p_name
From cart;

-------------------------------------------------------------------

 

문제 5

 

* WHERE  서브쿼리 ( IN )

* JOIN과 비슷한 개념


a001 회원이 주문한 상품에 대한
상품분류코드, 상품분류명 조회하기


Select lprod_gu, lprod_nm
From lprod
Where lprod_gu In (Select prod_lgu
                    From prod
                    Where prod_id In (Select cart_prod
                                        From cart
                                        Where cart_member = 'a001'));

------------------------------------------------------------------------

 

문제 6

 

* WHERE  서브쿼리 ( IN )


-- 이쁜이 라는 회원이 주문한 상품 중에
-- 상품분류코드가 P201이고,
-- 거래처코드가 P20101인
-- 상품코드, 상품명을 조회해 주세요

select prod_id, prod_name
from prod
where prod_lgu = 'P201'
  And prod_buyer = 'P20101'
  And prod_id in (select cart_prod
                  from cart 
                  where cart_member in (select mem_id
                                              from member
                                              where mem_name='이쁜이'));