SQL_3

jh_k·2023년 2월 5일
1

SQL

목록 보기
3/3

이중쿼리문

  1. 부서의 위치가 'NEW YORK', DALLAS'가 아닌 소속 사원의 정보 출력
    • dept 테이블에서 위치가 'NEW YORK','DALLAS' 아닌 부서 번호 출력
    • emp table에서 위의 결과인 소속 사원 정보를 출력
sql =""" 
    select * 
    from emp
    where DEPTNO IN  (
    select DEPTNO 
    from dept
    where LOC NOT IN ('NEW YORK','DALLAS'))
    """
sql_class.excuteAll(sql)
  1. tran_1,tran_2,tran_d_1,tran_d_2 데이터베이스에서 select문을 이용해서 데이터프레임으로 저장
  2. tran_1, tran_2 단순한 행 결합(유니온 결합)
  3. tran_d_1, tran_d_2, 단순한 행 결합(유니온 결합)
  4. tran, tran_d를 특정 조건에 맞게 조인 결합
sql_1 = """ 
        select * from tran_1
        """
tran_1 =sql_class.excuteAll(sql_1)

sql_2 = """ 
        select * from tran_2
        """
tran_2 = sql_class.excuteAll(sql_2)

sql_3 = """ 
        select * from tran_d_1
        """
tran_d_1 = sql_class.excuteAll(sql_3)

sql_4 = """ 
        select * from tran_d_2
        """
tran_d_2 =sql_class.excuteAll(sql_4)
## sql 쿼리문
sql = """
        select * from tran_1
        union
        select *from  tran_2
     
        """
sql_class.excuteAll(sql)

## 위에 방법에 아래 방법을 더하면 완성
sql_2 = """ 
    select * 
    from tran_1
    left join tran_d_1
    on tran_1.transaction_id = tran_d_1.transaction_id
"""
sql_class.excuteAll(sql_2)
## union 후 만들어진 두 테이블을 이용한 left join
sql = """ 
    select * from
    (select * from tran_1
    union
    select * from tran_2) as tran
    left join 
    (select * from tran_d_1
    union
    select * from tran_d_2) as tran_d
    on tran.transaction_id = tran_d.transaction_id
    """
sql_class.excuteAll(sql)
profile
Just Enjoy Yourself

0개의 댓글