서브쿼리 개념 한줄 요약
SQL명령문 안에 SELECT 명령문이 괄호로 있는게 서브쿼리
이해를 위해서 아주 간단한 예를 들면
아래와 같은 테이블(table1)이 있을때, 서브쿼리를 사용하여 score가 가장 낮은 no를 찾는다면 다음과 같이 할 수 있습니다.
SELECT no FROM table1 WHERE score = (SELECT MIN(score) FROM table1);
실제로 MySQL에서 확인을 해보면
table1과 table2가 다음과 같이 있을때,
tabl1 행의 개수와 table2 행의 개수를 조회해보면 다음과 같이 SELECT구 내부에 서브쿼리로 조회할 수 있습니다.
SELECT
(SELECT COUNT(*) FROM table1) AS sql1,
(SELECT COUNT(*) FROM table2) AS sql2;
SELECT구에서 서브쿼리를 사용할때는 서브쿼리의 반환되는 값이 스칼라값
이여야 합니다.
스칼라값: 여려 행이거나 여러 열이 아닌 단일 값