⚙️ 개발/MySQL
INNSER JOIN, OUTER JOIN
지구용사
2024. 5. 9. 15:17
이제 더는 물러설 수 없는 순간이라 INNER JOIN과 OUTER JOIN을 확실히 정리할려한다.
기본 MEMBER 테이블을 조회한 값이다.
SELECT
A.USER_NO
FROM
TB_MEMBER A
ORDER BY USER_NO
LIMIT 10;
TB_MEMBER와 TB_CAMPAIGN의 공통을 뽑아내기 위해 INNER JOIN을 한다.
SELECT
A.USER_NO,
B.AD_CAMPAIGN_NO
FROM
TB_MEMBER A
INNER JOIN TB_AD_CAMPAIGN B
ON A.USER_NO = B.USER_NO
ORDER BY USER_NO
LIMIT 10;
둘이 겹치는 데이터만 조회하기에 TB_AD_CAMPAIGN에 데이터가 없는 TB_MEMBER 데이터는 조회되지 않는다.
그리고 하나의 USER_NO에 해당하는 AD_CAMPAIGN_NO가 여러개 나오는 것을 확인할 수 있다.
TB_MEMBER 기점으로 LEFT OUTER JOIN을 한다.
SELECT
A.USER_NO,
B.AD_CAMPAIGN_NO
FROM
tb_member A
LEFT OUTER JOIN tb_ad_campaign B
ON A.USER_NO = B.USER_NO
ORDER BY USER_NO
LIMIT 10;
왼쪽 테이블인 TB_MEMBER를 기준으로 조회하기 때문에 조인한 테이블에 데이터가 없는 경우 NULL처리된다.
따라서 TB_MEMBER의 데이터는 조건이 맞으면 모두 조회한다.
조인하는 TB_AD_CAMPAIGN 기준으로 RIGHT OUTER JOIN을 한다.
SELECT
A.USER_NO,
B.AD_CAMPAIGN_NO
FROM
tb_member A
RIGHT OUTER JOIN tb_ad_campaign B
ON A.USER_NO = B.USER_NO
ORDER BY USER_NO
LIMIT 10;
조인하는 테이블인 TB_AD_CAMPAIGN을 기준으로 조인하기 때문에 TB_MEMBER에 데이터가 없는 경우 조회하지 않는다.
따라서 TB_AD_CAMPAIGN 의 데이터는 조건이 맞으면 모두 조회한다.