[DAY20] MySQL JOIN

m1njae·2022년 1월 22일
0

22 Basic Challenge

목록 보기
20/25
post-thumbnail

JOIN

데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과를 집합으로 출력해준다. 아래 그림은 JOIN에 대해서 잘 설명해준다.


위 그림을 테이블 A, 아래 그림을 테이블 B라고 하자.

우리는 두 개의 테이블을 연결고리인 author_id으로 JOIN을 통해 두 개의 테이블을 합칠 수 있다. 그렇다면 우리는 다음과 같은 명령을 통해서 두 테이블을 결합시킬 수 있다.

SELECT ~~ FROM TABLE_A LEFT JOIN TABLE_B ON TABLE_A.KEY = TABLE_B.KEY

ON 절을 이용한 JOIN 표현법은 조건을 지정하는 방법으로 일반적인 모든 형태의 JOIN을 표현할 수 있다.

INNER JOIN

INNER JOIN은 조인 중 가장 많이 사용된다. 따라서 보통 JOIN을 얘기할 때는 INNER JOIN을 말하는 것이다. INNER JOIN은 키가 일치하는 레코드만을 추출해서 출력해준다.

SELECT ~~ FROM TABLE_A INNER JOIN TABLE_B ON TABLE_A.KEY = TABLE_B.KEY

LEFT JOIN / RIGHT JOIN

A값의 전체와, A의 KEY 값과 B KEY 값이 같은 결과를 리턴하도록 한다.
그렇다면 RIGHT JOIN은 B값의 전체와, A의 KEY 값과 B KEY 값이 같은 결과를 리턴하도록 해준다는 것을 알 수 있다.

이때 ON 절의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 열 값은 그대로 가져오지만 해당 레코드의 두 번째 테이블의 열 값은 모두 NULL로 표시된다.

OUTER JOIN

INNER JOIN은 양쪽 테이블에 모두 내용이 있는 경우에만 결과가 출력되었지만 OUTER JOIN은 한쪽 테이블에만 내용이 있어도 결과가 출력된다. 자주 사용되지는 않지만 가끔 유용하게 사용되는 방식이다.

SELECT ~~ FROM TABLE_A LEFT OUTER JOIN TABLE_B ON TABLE_A.KEY = TABLE_B.KEY

참고

생활코딩 DATABASE2-MYSQL
https://yoo-hyeok.tistory.com/98

profile
할 수 있는 것부터 차근차근, 항해자의 공부 기록공간

0개의 댓글