logo

[SQLite] JOIN

SQLite에서 JOIN은 두 개 이상의 테이블에서 관련된 데이터를 결합하여 조회할 때 사용됩니다. 각종 JOIN 유형을 통해 데이터베이스 내 여러 테이블 간의 관계를 정의하고, 필요한 데이터를 효율적으로 추출할 수 있습니다.

 

INNER JOIN

두 테이블에서 일치하는 데이터가 있는 행만을 반환합니다.

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
INNER JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;

이 예시는 Employees 테이블과 Departments 테이블을 DepartmentID를 기준으로 결합하여, 각 직원과 해당 부서 이름을 조회합니다.

 

LEFT JOIN (LEFT OUTER JOIN)

왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다. 오른쪽 테이블에 일치하는 행이 없는 경우, 해당 필드는 NULL로 표시됩니다.

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
LEFT JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;

이 예시는 Employees 테이블의 모든 직원과, 해당하는 Departments 테이블의 부서 이름을 조회합니다. 일치하는 부서가 없는 직원의 경우, DepartmentName은 NULL로 표시됩니다.

 

CROSS JOIN

두 테이블 간의 카테시안 곱을 반환합니다. 즉, 한 테이블의 모든 행이 다른 테이블의 모든 행과 결합됩니다.

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
CROSS JOIN Departments;

이 예시는 Employees 테이블의 모든 직원과 Departments 테이블의 모든 부서의 조합을 조회합니다.

 

NATURAL JOIN

두 테이블 간에 같은 이름을 가진 모든 열을 기준으로 자동으로 결합합니다.

SELECT *
FROM Employees
NATURAL JOIN Departments;

이 예시는 EmployeesDepartments 테이블에서 열 이름이 같은 모든 열을 기준으로 자동 결합하여 데이터를 조회합니다.

 

ON과 USING

ONUSING 절은 JOIN 조건을 명시하는 데 사용됩니다. ON은 결합 조건을 자유롭게 정의할 수 있으며, USING은 두 테이블 간에 같은 이름을 가진 열을 기준으로 결합할 때 사용합니다.

SELECT *
FROM Employees
JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;

USING 절을 사용할 때는 괄호 안에 기준 열 이름을 명시합니다.

SELECT *
FROM Employees
JOIN Departments USING(DepartmentID);

이 경우, EmployeesDepartments 테이블에서 DepartmentID 열을 기준으로 결합합니다.

Previous
SELECT
Next
INSERT