left outer join, inner join 차이

SOL·2023년 4월 5일
0

db

목록 보기
1/4
post-custom-banner

Join

두 개 이상의 테이블을 서로 조합하여 하나의 결과를 보여주는 것

Inner Join(join)

두 테이블에서 일치하는 행만을 반환
즉, JOIN 조건을 만족하는 모든 행이 결과에 포함된다.

  • 두 테이블을 join 하기 위해서는 두 테이블이 1:N 관계로 연결되어야 함

명시적 조인

SELECT * FROM a INNER JOIN ON a.name = b.name;

암시적 조인

SELECT * FROM a, b WHERE a.nme = b.name;

예시

  • 고객 테이블
  • 주문 테이블
    주문 테이블의 고객 id 열과 고객 테이블의 id 열을 사용해서 두 테이블을 inner join 하면, 각 고객의 주문 내역을 볼 수 있다. 하지만, 고객이 주문을 한 번도 하지 않은 경우, 결과에는 해당 고객에 대한 정보가 없다.

left outer join(left join)

왼쪽 테이블의 모든 행과 일치하는 오른쪽 테이블의 행을 반환. 일치하는 행이 없는 경우에는 NULL 값을 반환한다.
이를 통해, 왼쪽 테이블의 모든 데이터를 보존하면서 오른쪽 테이블의 일치하는 데이터를 찾을 수 있다.

SELECT * FROM a LEFT OUTER JOIN b ON a.name = b.name;

예시

고객 테이블과 주문 테이블을 LEFT OUTER JOIN 하면, 모든 고객의 정보를 결과에 포함시킨다. 주문을 한 번도 하지 않은 고객의 경우, 해당 고객의 주문 내역이 NULL 값으로 표시된다.

post-custom-banner

0개의 댓글