SQL 함수 모음 (2) JOIN

냥린이·2021년 11월 20일
0

데이터베이스

목록 보기
2/4

Inner Join

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Join의 기본값은 Inner Join이다.

  • 교집합을 의미한다. 조건에 부합하는 행을 모아서 보여준다.

Outer Join

조건에 부합하지 않는 행도 포함시켜 결합하는 것이다.

  • Left, Right, Full join이 여기에 해당한다.

Left Join

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

왼쪽 테이블을 중심으로 오른쪽 테이블을 매치시킨다.

  • 이때 중심이 되는 것은 왼쪽이다. 왼쪽 테이블의 레코드는 무조건 표현되고, 매치되는 오른쪽 테이블 레코드가 없으면 null을 표시한다.
  • 왼쪽 테이블의 레코드에 오른쪽 테이블의 레코드가 여러개 매치된다면, 왼쪽 테이블 레코드를 반복 출력하여 오른쪽 테이블 레코드를 보여준다.

Right Join

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

| Left Join과 완벽히 동일하나 방향만 반대이다.

오른쪽 테이블을 중심으로 왼쪽 테이블을 매치시킨다.

  • 이때 중심이 되는 것은 오른쪽이다. 오른쪽 테이블의 레코드는 무조건 표현되고, 매치되는 왼쪽 테이블 레코드가 없으면 null을 표시한다.
  • 오른쪽 테이블의 레코드에 왼쪽 테이블의 레코드가 여러개 매치된다면, 오른쪽 테이블 레코드를 반복 출력하여 왼쪽 테이블 레코드를 보여준다.

Full Outer Join

두 테이블을 모두 읽고 중복된 데이터를 삭제하여 표시한다.

  • 자주 사용되지는 않으며 DBMS마다 지원 유무가 상이하다.

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;

참고자료

https://www.w3schools.com/sql/sql_join_left.asp
https://jyoondev.tistory.com/91

profile
홀로서기 기록장

0개의 댓글