SQL 기본 및 활용
🗄️ SQLSQL 기본★★★★★거의 매회

조인 — INNER 와 OUTER

INNER JOIN 은 양쪽에 다 있는 것만, LEFT OUTER JOIN 은 왼쪽은 다 남기고 오른쪽은 없으면 NULL 이다.

INNER JOINLEFT OUTER JOINCROSS JOINONNATURAL JOIN

왜 그런지까지

조인 조건에 맞는 짝이 없으면 INNER JOIN 에서는 그 행이 사라진다. 그것이 문제가 될 때 OUTER JOIN 을 쓴다.

주의할 점은 OUTER JOIN 에서 조건을 WHERE 에 쓰면 다시 INNER 처럼 되어 버린다는 것이다. 오른쪽 표에 대한 조건은 ON 절에 적어야 한다. CROSS JOIN 은 조건 없이 모든 짝을 만들어 행 수가 곱해진다.

조인 종류

종류남는 행
INNER JOIN양쪽에 짝이 있는 행만
LEFT OUTER왼쪽 전부 + 짝이 있으면 오른쪽
RIGHT OUTER오른쪽 전부 + 짝이 있으면 왼쪽
FULL OUTER양쪽 전부
CROSS JOIN모든 짝 (행 수가 곱해진다)

돌려 보기

INNER 와 LEFT OUTER 의 행 수 차이

헷갈리는 것

OUTER JOIN 의 조건을 ON 에 vs WHERE 에

ON 에 적으면 짝을 찾는 조건이라 왼쪽 행이 남지만, WHERE 에 적으면 조인이 끝난 뒤 거르므로 NULL 인 행이 사라져 INNER 와 같아진다.

NATURAL JOIN vs USING

NATURAL JOIN 은 이름이 같은 모든 열로 알아서 잇고, USING 은 지정한 열로만 잇는다. 둘 다 그 열에 별칭을 붙일 수 없다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다