MariaDB 서브쿼리 사용법
MariaDB에서 서브쿼리를 사용하면 복잡한 쿼리를 구성하고 다양한 조건을 적용하여 데이터를 조회할 수 있습니다. 이 글에서는 기본 서브쿼리 사용법, WHERE 절에서의 서브쿼리, SELECT 절에서의 서브쿼리, FROM 절에서의 서브쿼리 사용법을 예제와 함께 알아봅니다.
기본 서브쿼리 사용법
서브쿼리는 다른 쿼리 내에서 실행되는 쿼리입니다. 일반적으로 소괄호 () 안에 작성됩니다.
SELECT *
FROM employees
WHERE department_id = (SELECT id FROM departments WHERE department_name = 'HR');WHERE 절에서 서브쿼리 사용
WHERE 절에서 서브쿼리를 사용하여 조건을 만족하는 데이터를 조회할 수 있습니다.
SELECT name
FROM employees
WHERE department_id = (SELECT id FROM departments WHERE department_name = 'Engineering');SELECT 절에서 서브쿼리 사용
SELECT 절에서 서브쿼리를 사용하여 추가 정보를 조회할 수 있습니다.
SELECT name, (SELECT department_name FROM departments WHERE id = e.department_id) AS department_name
FROM employees e;FROM 절에서 서브쿼리 사용
FROM 절에서 서브쿼리를 사용하여 임시 테이블을 생성하고 이를 기반으로 데이터를 조회할 수 있습니다.
SELECT name, department_name
FROM (SELECT e.name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.id) AS emp_dept;테스트 테이블 및 샘플 데이터
예제를 테스트하기 위해 employees와 departments 테이블을 생성하고 샘플 데이터를 삽입합니다.
테이블 생성
-- employees 테이블 생성
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
department_id INT
);
-- departments 테이블 생성
CREATE TABLE departments (
id INT AUTO_INCREMENT PRIMARY KEY,
department_name VARCHAR(50)
);샘플 데이터 삽입
-- 샘플 데이터 삽입
INSERT INTO employees (name, department_id) VALUES
('Alice', 1),
('Bob', 2),
('Charlie', NULL);
INSERT INTO departments (department_name) VALUES
('HR'),
('Engineering');활용 예제
WHERE 절 서브쿼리 예제
SELECT name
FROM employees
WHERE department_id = (SELECT id FROM departments WHERE department_name = 'HR');SELECT 절 서브쿼리 예제
SELECT name, (SELECT department_name FROM departments WHERE id = e.department_id) AS department_name
FROM employees e;▼ WHERE 절, SELECT 절 서브쿼리 실행 결과 화면

FROM 절 서브쿼리 예제
SELECT name, department_name
FROM (SELECT e.name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.id) AS emp_dept;▼ FROM 절 서브쿼리 실행 결과 화면

참고할 만한 사이트
더 자세한 내용은 다음 사이트들을 참고하세요.
관련 이전 게시글
- MariaDB SELECT 문 사용법 및 DISTINCT 중복 제거
- MariaDB 데이터 그룹화: GROUP BY 절 사용법
- MariaDB 조건부 집계: HAVING 절 사용법
- MariaDB 조인 사용법: INNER, LEFT, RIGHT, CROSS JOIN
- MariaDB 데이터 형식 변환: CAST 및 CONVERT 함수
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
