[SQL]-(059) 여러 테이블의 데이터를 조인해서 출력하기2
[Reference] 초보자를 위한 SQL 200제
[SQL 문법]
조인하려는 컬럼들 간의 연결고리가 이퀄조건이 아닐 때도 조인할 수 있다.
이를 NON EQUI JOIN이라고 한다.
아래 예시는 LOWSAL 구간이 700이고 UPPERSAL 구간이 1200일 때 1GRADE SAL인데 NON EQUI 조인으로 (700, 1200) 사이의 emp 테이블의 SAL에 GRADE를 매기는 예시이다.
SELECT e.ename, e.sal, s.grade
FROM emp e, salgrade s
WHERE e.sal between s.losal and s.hisal
[예시]
# 오라클 연동 및 접속
import pandas as pd
import cx_Oracle
dsn=cx_Oracle.makedsn('localhost',1521,'orcl')
db=cx_Oracle.connect('scott','tiger')
cursor=db.cursor()
# SQL 문법
cursor.execute("""
SELECT e.ename, e.sal, s.grade
FROM emp e, salgrade s
WHERE e.sal between s.losal and s.hisal
"""
)
row=cursor.fetchall()
colname=cursor.description
col=[]
for i in colname:
col.append(i[0])
# pandas를 사용한 데이터 프레임 형식으로 변환
emp=pd.DataFrame(row,columns=col)
print(emp)
[결과]
ENAME SAL GRADE
0 SMITH 800.0 1
1 JAMES 950.0 1
2 ADAMS 1100.0 1
3 WARD 1250.0 2
4 MARTIN 1250.0 2
5 MILLER 1300.0 2
6 TURNER 1500.0 3
7 ALLEN 1600.0 3
8 CLARK 2450.0 4
9 BLAKE 2850.0 4
10 JONES 2975.0 4
11 FORD 3000.0 4
12 SCOTT 3000.0 4
13 KING 5000.0 5
Leave a comment