두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것으로, 데이터 조회 시 다른 테이블의 데이터를 함께 조회해야할 때 사용함
가장 기본적인 조인으로, 두 테이블의 교집합을 나타냄
ON의 조건에 맞는 공통된 부분이 있는 경우만 출력
SELECT * FROM employees
INNER JOIN dept_emp
ON employees.emp_no = dept_emp.emp_no;
SELECT * FROM employees, dept_emp
WHERE employees.emp_no = dept_emp.emp_no;
SELECT * FROM employees
NATURAL JOIN dept_emp;
SELECT * FROM employees, departments
WHERE emplyees.emp_no between 10003 and 10004;
내부 조인과 달리, 두 테이블 간의 조건에 맞지 않는 행도 결과에 포함시킴
SELECT * FROM table1
LEFT OUTER JOIN table2
ON table1.n = table2.n;
SELECT * FROM table1
RIGHT OUTER JOIN table2
ON table1.n = table2.n;
동일 테이블 사이의 조인
같은 테이블끼리 조인하는 것이므로 별칭(Alias)을 꼭 사용해야 함
-- 사원번호를 통해 관리자와 사원이 관리되고 있는 테이블에서
-- 셀프조인을 사용해 자신의 관리자와 바로 위 차상위 관리자를 구할 수 있음
SELECT E1.EMPNO 사원, E1.MGR 관리자, E2.MGR 차상위_관리자
FROM EMP E1, EMP E2
WHERE E1.MGR = E2.EMPNO
두 테이블을 카디션 프로덕트(곱집합)한 결과, 특별한 조건 없이 테이블 A의 각 행과 B의 각 행을 다 조합한 결과
SELECT * FROM employees
CROSS JOIN dept_emp;
SELECT * FROM employees, dept_emp;
중첩 반복문과 유사한 방식으로 조인을 수행함
선행 테이블(외부 테이블)
이라 함 후행 테이블(내부 테이블)
이라 함
조인키를 기준으로 데이터를 정렬하여 조인을 수행함
해싱 기법을 이용하여 조인을 수행함
https://advenoh.tistory.com/23
https://velog.io/@newdana01/Database-테이블-조인-이해하기
https://hongcoding.tistory.com/146
[책] 면접을 위한 cs 전공지식노트
https://m.blog.naver.com/isaac7263/222117156620
https://eehoeskrap.tistory.com/84
https://hyyoo89.tistory.com/entry/조인-종류-및-수행원리