-- Users 테이블에서 사용자 이름과 그들의 대출 건수를 선택하는 메인 쿼리
SELECT
username,
-- 각 사용자별 대출 기록 수를 계산하는 서브쿼리
(SELECT COUNT(*)
FROM LoanRecords
WHERE user_id = Users.user_id) AS loans_count
FROM Users;
사용자의 대출건수를 가져오기 위해 SELECT문 내부에 서브쿼리를 사용한 예시
각 사용자 행마다 서브쿼리를 실행하기 때문에 비효율적이고
GROUP BY와 COUNT를 조합하여 동일하게 가져올 수 있으므로 굳이 서브쿼리는 필요가 없음
-- 더 나은 예시
SELECT
u.username,
COUNT(l.user_id) AS loans_count
FROM Users u
LEFT JOIN LoanRecords l ON u.user_id = l.user_id
GROUP BY u.user_id;