21강. 서브쿼리의 폐혜

1. 서브쿼리의 문제점

2. 서브쿼리 의존증

Receipts (구입 명세) - 고객별로 최소 순번을 가진 레코드 구하기

cust_id seq price
A 1 500
A 2 1000
A 3 700
B 5 100
B 6 5000
B 7 300
B 9 200
B 12 1000
C 10 600
C 20 100
C 45 200
C 70 50
D 3 2000

1) 서브쿼리 사용

SELECT R1.cust_id, R1.seq, R1.price
FROM Receipts R1
    INNER JOIN
    (SELECT cust_id, MIN(seq) AS min_seq
    	FROM Receipts
        GROUP BY cust_id) R2
    ON R1.cust_id=R2.cust_id
    AND R1.seq=R2.min_seq;

2) 상관 서브쿼리

SELECT cust_id, seq, price
FROM Receipts R1
WHERE seq=(SELECT MIN(seq)
            FROM Receipts R2
            WHERE R1.cust_id=R2.cust_id);