본문 바로가기
개발/Database

외부조인

by 안뇽! 2022. 3. 9.
반응형

내부조인과 외부조인의 차이

내부조인은 두 테이블에 존재하는 항목만 출력

외부조인은 한쪽에만 있으면 출력(left, right, full)

LEFT OUTER JOIN ( = LEFT JOIN)

왼쪽 테이블의 내용은 모두 출력되어야 한다.

아래 쿼리문에서는 'member 테이블의 내용은 모두 출력되어야 한다.' 라고 이해하면 된다.

SELECT M.mem_id , M.mem_name, B.prod_name, M.addr
    FROM member M
        LEFT OUTER JOIN buy B
        ON M.mem_id = B.mem_id
       ORDER BY M.mem_id;

RIGHT OUTER JOIN ( = RIGHT JOIN)

오른쪽 테이블의 내용은 모두 출력되어야 한다.

아래 쿼리문에서는 'buy 테이블의 내용은 모두 출력되어야 한다.' 라고 이해하면 된다.

SELECT M.mem_id , M.mem_name, B.prod_name,B.group_name, M.addr
    FROM member M
        RIGHT OUTER JOIN buy B
        ON M.mem_id = B.mem_id
       ORDER BY M.mem_id;

 

외부 조인 활용 예시

이전에는 내부 조인 활용을 예시로 글을 작성했다.

 

만약 회원들 중 물건을 한번도 구매한 적이 없는 회원의 목록을 추출해보자.

다음과 같이 WHERE B.prod.name IS NULL 를 이용하였다.

SELECT DISTINCT M.mem_id,B.prod_name,M.mem_name,M.addr
    FROM member M 
        LEFT OUTER JOIN buy B
        ON M.mem_id = B.mem_id
       WHERE B.prod_name IS NULL
       ORDER BY M.mem_id;

 

FULL OUTER JOIN

왼쪽 외부 조인, 오른쪽 외부 조인이 합쳐진 것

왼쪽이던 오른쪽이던 있으면 출력.

자주 사용되지는 않는다고 한다.

 


혼자공부하는SQL 공부중

반응형

'개발 > Database' 카테고리의 다른 글

Mysql 비번 초기화  (0) 2023.07.14
MYSQL에서 Split하기 : SUBSTRING_INDEX  (0) 2022.04.03
DISTINCT 중복된 결과중 1개만 출력  (0) 2022.03.08
내부조인 외부조인  (0) 2022.03.08
MySQL 변수사용  (0) 2022.02.25