이중쿼리문
- 부서의 위치가 '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)
- tran_1,tran_2,tran_d_1,tran_d_2 데이터베이스에서 select문을 이용해서 데이터프레임으로 저장
- tran_1, tran_2 단순한 행 결합(유니온 결합)
- tran_d_1, tran_d_2, 단순한 행 결합(유니온 결합)
- 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)