SQL join

2023. 4. 20. 22:31Programming

SQL join은 두 개 이상의 테이블에서 데이터를 가져와 결합하는 기능을 말합니다. join을 사용하면 테이블 간의 관계를 이해하고 데이터를 분석하고 쿼리할 수 있습니다.

  1. INNER JOIN INNER JOIN은 두 테이블 사이에서 공통된 값을 기준으로 매칭하여 결과를 반환합니다. 즉, 조인하는 두 테이블에서 조건에 일치하는 행만 반환합니다.
  2. LEFT JOIN LEFT JOIN은 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블의 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL 값을 반환합니다.
  3. RIGHT JOIN RIGHT JOIN은 LEFT JOIN과 반대로 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우 NULL 값을 반환합니다.
  4. FULL OUTER JOIN FULL OUTER JOIN은 두 테이블 중 어느 한쪽에라도 일치하는 행을 모두 반환합니다. 일치하지 않는 경우에는 NULL 값을 반환합니다.
  5. CROSS JOIN CROSS JOIN은 모든 행을 조합하여 반환합니다. 따라서 조인하는 두 테이블의 행 수를 곱한 값만큼의 결과가 반환됩니다.

데이터 베이스 예제로 추가 설명 하겠습니다.

 

Table 1: employees

1 Alice Sales
2 Bob Engineering
3 Charlie Sales
4 David Marketing
5 Eve Engineering

Table 2: salaries

1 60000
2 80000
3 55000
4 75000
6 90000

위의 두 테이블에서, employees 테이블의 id 열과 salaries 테이블의 id 열이 일치한다는 가정 하에 SQL join을 수행해 보겠습니다.

 

1.INNER JOIN

INNER JOIN을 사용하면 두 테이블에서 공통된 값을 기준으로 매칭하여 결과를 반환합니다.

SELECT employees.name, salaries.salary
FROM employees
INNER JOIN salaries
ON employees.id = salaries.id;

위의 SQL 쿼리는 employees 테이블과 salaries 테이블에서 id 열이 일치하는 행만 선택하고, employees 테이블의 name 열과 salaries 테이블의 salary 열을 반환합니다.

Alice 60000
Bob 80000
Charlie 55000
David 75000

 

2.LEFT JOIN

LEFT JOIN을 사용하면 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우에는 NULL 값을 반환합니다.

SELECT employees.name, salaries.salary
FROM employees
LEFT JOIN salaries
ON employees.id = salaries.id;

위의 SQL 쿼리는 employees 테이블의 모든 행을 선택하고, salaries 테이블에서 id 열과 일치하는 행이 있는 경우에는 그 행의 salary 값을 반환하고, 일치하는 행이 없는 경우에는 NULL 값을 반환합니다.

Alice 60000
Bob 80000
Charlie 55000
David 75000
Eve NULL

3. RIGHT JOIN

RIGHT JOIN을 사용하면 LEFT JOIN과 반대로 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 행을 반환합니다. 일치하지 않는 경우에는 NULL 값을 반환합니다.

SELECT employees.name, salaries.salary
FROM employees
RIGHT JOIN salaries
ON employees.id = salaries.id;

위의 SQL 쿼리는 salaries 테이블의 모든 행을 선택하고, employees 테이블에서 id 열과 일치하는 행이 있는 경우에는 그 행의 name 값을 반환하고, 일치하는 행이 없는 경우에는 NULL 값을 반환합니다.

Alice 60000
Bob 80000
Charlie 55000
David 75000
NULL 90000

4. FULL OUTER JOIN

FULL OUTER JOIN을 사용하면 두 테이블에서 일치하는 값을 모두 반환하고, 일치하지 않는 경우에는 NULL 값을 반환합니다.

SELECT employees.name, salaries.salary
FROM employees
FULL OUTER JOIN salaries
ON employees.id = salaries.id;

위의 SQL 쿼리는 employees 테이블과 salaries 테이블에서 id 열이 일치하는 행을 선택하고, 둘 중 하나라도 일치하지 않는 경우에는 NULL 값을 반환합니다.

Alice 60000
Bob 80000
Charlie 55000
David 75000
Eve NULL
NULL 90000

위의 예시에서는 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN을 사용하여 두 테이블을 조인하는 방법을 보여주었습니다.

반응형