[SQL] 12-3. SQL LEFT JOIN & RIGHT JOIN

Damagedcase·2020년 12월 6일
0

SQL

목록 보기
14/15

LEFT JOIN이란 명령어는 SQL 구문에서 첫번째로 명시된 테이블, 즉 왼쪽 테이블에 있는 모든 값 중에 명시된 오른쪽 테이블 칼럼 값과 일치하는 모든 데이터를 조회합니다. 만일 오른쪽 테이블에 일치하는 데이터가 없다면 NULL이 반환됩니다.

SELECT <칼럼> FROM <테이블 1> LEFT JOIN <테이블 2> ON <테이블 1. 칼럼> = <테이블 2. 칼럼>

기본적인 문법은 위와 같습니다.

이제 customers 테이블에 있는 id값과 transactions 테이블에 id값끼리 일치하는 데이터들을 customers 테이블로부터 transactions 테이블을 LEFT JOIN하여 customers의 name 칼럼과 transactions의 id 칼럼 그리고 trasaction_date 칼럼을 조회해보겠습니다.

SELECT customers.name, transactions.id as transaction_id, transactions.transaction_date FROM customers LEFT JOIN transactions ON customers.id = transactions.customer_id;

customers 테이블의 모든 데이터와 customers 테이블에 있는 id값과 transactions 테이블에 id값들이 일치하는 transactions 테이블의 값들을 조회한 것을 볼 수 있습니다.

이제 반대로 RIGHT JOIN은 첫번째로 명시된 테이블, 즉 오른쪽 테이블에 있는 모든 값 중에 명시된 왼쪽 테이블 칼럼 값과 일치하는 모든 데이터를 조회합니다. 만일 왼쪽 테이블에 일치하는 데이터가 없다면 NULL이 반환됩니다.

아까 위에서 사용한 SQL문에서 LEFT JOIN을 RIGHT JOIN으로 대체하여 실행해보겠습니다.

SELECT customers.name, transactions.id as transaction_id, transactions.transaction_date FROM customers RIGHT JOIN transactions ON customers.id = transactions.customer_id;

LEFT JOIN과는 다르게 transaction 테이블로 기준을 잡아 transaction 테이블의 모든 값과 customers 데이터 중에 customers 테이블에 있는 id값과 transactions 테이블에 id값이 일치하는 데이터들이 조회된 것을 볼 수 있습니다.

profile
성장을 추구하는 개발자

0개의 댓글