[sql] 조인과 서브쿼리 사용방법

SQL을 사용하다보면 여러 테이블 간의 데이터를 결합하여 원하는 결과를 얻기 위해 조인과 서브쿼리를 사용해야 하는 경우가 있습니다. 이번 글에서는 SQL에서의 조인과 서브쿼리 사용 방법에 대해 알아보겠습니다.

1. 조인(Join)

조인은 두 개 이상의 테이블로부터 데이터를 결합하여 하나의 결과 집합을 만드는 데 사용됩니다. 일반적으로는 공통 열(기준 열)을 기준으로 데이터를 결합합니다.

예를 들어, employees 테이블과 departments 테이블이 있다고 가정해봅시다. 이 두 테이블은 각각 직원의 정보와 부서 정보를 담고 있습니다. 만약 직원과 그들이 속한 부서의 정보를 함께 얻고 싶다면, employees 테이블과 departments 테이블을 조인하여 필요한 정보를 얻을 수 있습니다.

다음은 두 테이블을 조인한 SQL문의 예시입니다.

SELECT employees.name, departments.dept_name
FROM employees
INNER JOIN departments ON employees.dept_id = departments.dept_id;

위의 예시에서 employees 테이블과 departments 테이블을 dept_id 열을 기준으로 조인하였습니다. 결과는 직원의 이름과 그들이 속한 부서의 이름이 함께 출력됩니다.

2. 서브쿼리(Subquery)

서브쿼리는 하나의 SQL문 안에 포함된 또 다른 SQL문으로, 주로 다른 쿼리의 결과에 따라 동적으로 조건을 설정하거나, 복잡한 연산을 수행하기 위해 활용됩니다.

예를 들어, 어떤 부서에서 평균 급여보다 높은 급여를 받는 직원의 목록을 얻고 싶다면, 서브쿼리를 사용하여 이를 구할 수 있습니다.

다음은 서브쿼리를 사용한 SQL문의 예시입니다.

SELECT name, salary
FROM employees
WHERE dept_id IN (SELECT dept_id FROM departments WHERE avg_salary > 50000);

위의 예시에서, departments 테이블을 서브쿼리를 사용하여 평균 급여가 50000보다 높은 부서의 dept_id를 선택하고, 이를 이용하여 해당 부서에 속한 직원들의 이름과 급여를 출력하고 있습니다.

조인과 서브쿼리는 SQL을 더욱 유연하게 활용할 수 있도록 도와줍니다. 이를 잘 파악하여 적재적소에 활용하는 것이 중요합니다.


이상으로 SQL에서 조인과 서브쿼리 사용 방법에 대해 알아보았습니다. 추가적인 내용이나 궁금한 점이 있다면 언제든지 물어봐주세요!