2개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법이다. 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을경우 주로 사용하며, 여러개의 테이블을 마치 하나의 테이블인 것처럼 활용하는 방법이다.
JOIN을 하기 위해서는 각 테이블의 PK(Primary Key)와 FK(Foreign Key)를 이용해 정보를 조합한다.
JOIN을 하고자 하는 두개의 테이블에서 공통된 컬럼들을 통해 데이터를 결합하는 방식이다.
결과값은 A와 B테이블 모두 가지고 있는 데이터만 검색된다.
셀러(sellers
)라는 테이블과 셀러 테이블이 정참조하고 있는 권한(authorities)
테이블 이 있다. 이 데이터는 셀러와 권한 테이블 모두 가지고 있다.
권한 테이블은 셀러의 권한 레코드가 담긴 메타 데이터 테이블로써 구성은 master(id = 1), seller(id = 2) 가 있다.
보다시피 셀러 테이블에서는 권한의 ID만 있을 뿐, 권한 이름(name)에 접근할 수 없다. 이때 셀러(sellers) 테이블을 조회하는 쿼리문에서 권한(authorities)의 권한 이름(name) 컬럼을 가져오고 싶다면 다음과 같이 쿼리를 입력해주면 된다.
SELECT sellers.id, authorities.name
FROM sellers
INNER JOIN authorities ON sellers.authority_id = authorities.id
위 쿼리문에서 INNER JOIN 구문은 셀러 테이블의 권한 ID (sellers.authority_id)와 권한 테이블의 id(authorities.id)가 매칭되는 레코드를 셀러 테이블로 끌어오는 역할을 한다.
쿼리 실행 결과는 다음과 같다.