본문 바로가기
데이터베이스

[DB]Equi Join으로 테이블을 조인시켜보자

by 소금_msg 2021. 10. 3.

테이블의 관계도를 보여주는 Data Modeler( 파일>Data Modeler>임포트)

FIRST_NAME,DEPARTMENT_NAME,HIRE_DATE 을 한번에 검색하려고 한다.

FIRST_NAME 칼럼,HIRE_DATE 칼럼은 오른쪽의 EMPLOYEES 테이블에 속해 있고 

DEPARTMENT_NAME 칼럼은 왼쪽의 DEPARTMENTS 테이블에 있다.

 각각의 테이블의 칼럼을 JOIN 통해 한번의 쿼리문으로 작성하도록 해주는것이 조인이다.

 

 테이블은 DEPARTMENT_ID이라는 공통된 칼럼을 가지고 있기 때문에 DEPARTMENT_ID 칼럼으로  테이블을 결합한다.

 

JOIN은 어떤 상황에서 쓸까?

한개 이상의 테이블에서 데이터를 조회하기 위해서 쓴다.

이상의 테이블을 결합하지 않고 한번의 질의로 원하는 결과를 얻을수 있다.

 

그리고 두 테이블을 묶는 JOIN 조건이 있어야한다.

JOIN 조건은 테이블이 공통으로 가진 칼럼이다.

JOIN 조건은 WHERE 옆에 쓴다.

 

JOIN의 원리

어떻게 테이블을 결합할까?

Primary Key Foreign Key 칼럼을 통해 다른 테이블의 행과 연결한다.

Equi Join 테이블에서 공통적으로 가진 칼럼값이 일치되는 행을 연결해서 결과를 만든다.

 

EMPLOYEES 테이블과 DEPARTMENTS 테이블을 조인해보자.

SELECT FIRST_NAME,DEPARTMENT_NAME,HIRE_DATE
FROM EMPLOYEES E,DEPARTMENTS D
WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID;

 

FROM절에서 EMPLOYEES E 라는 표기로 EMPLOYEES 테이블에 E라는 별칭을 붙여주었기 때문에 

조건절 WHERE E.DEPARTMENT_ID EMPLOYEES 테이블의 DEPARTMENT_ID 칼럼이라는 뜻이다.

마찬가지로 D.DEPARTMENT_ID DEPARTMENTS 테이블의 DEPARTMENT_ID 칼럼이라는 뜻이다.

두개의 테이블에서 이름이 같은 칼럼을 쓴다면 구분하기 힘들기 때문에 별칭을 붙여서 사용해야한다.

 

FROM EMPLOYEES E,DEPARTMENTS D

형식은 테이블명 뒤에 공백을 두고 별칭을 써주면 된다.

 

2. 결과 확인

두 테이블에 있는 칼럼들이 한번에 검색되었다!