[sql] 서브쿼리에서 자신을 참조하는 방법

서브쿼리(subquery)는 SQL 쿼리 내부에서 다른 쿼리의 결과를 가지고 사용하는 것을 말합니다. 때때로 서브쿼리 내에서 자신을 참조해야 하는 경우가 있을 수 있습니다.

서브쿼리에서 자기 자신 참조하기

일반적인 서브쿼리를 사용하는 예시를 보겠습니다. 아래의 쿼리는 employees 테이블에서 가장 높은 급여를 받는 직원들의 정보를 조회하는 것입니다.

SELECT *
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees);

위의 쿼리에서 서브쿼리 (SELECT MAX(salary) FROM employees)는 자기 자신을 참조합니다. 즉, employees 테이블 내부에서 급여가 가장 높은 값을 참조하고 있습니다.

자기 자신 참조 시 주의사항

서브쿼리 내에서 자기 자신을 참조할 때는 주의해야 할 점이 있습니다. 무한루프(infinite loop)를 방지하기 위해 적절한 조건을 함께 사용해야 합니다.

SELECT column1
FROM table1
WHERE column1 = (SELECT column1 FROM table1 WHERE condition);

위의 예시에서 table1column1을 자기 자신과 비교하면 무한루프가 발생할 수 있으므로, 적절한 조건을 추가하여 무한루프를 방지해야 합니다.

서브쿼리에서 자기 자신을 참조하는 방법에 대해 알아보았습니다. 이를 통해 SQL 쿼리를 더욱 유연하게 작성할 수 있게 되었습니다.

참고 자료

위 내용을 참고하여 서브쿼리 내에서 자기 자신을 참조하는 방법을 알아보았습니다.