정보처리기사 공부하는데 좀 이해가 안돼서..


[도서가격 테이블]

책번호   가격     대여자

111       20000   홍길동

222       25000   김길식

333       10000   조광훈

444       15000   조원식

555       20000   허준


[결과]

책번호    가격     대여자

111        20000   홍길동

555        20000   허준


위 결과를 내기위해서 책에서는 EXISTS 연산자로 아래와 같이 쿼리했다고 함.


SELECT A.책번호, A.가격, A.대여자

FROM 도서가격 A

WHERE EXISTS

(SELECT 1

FROM 도서가격 B

WHERE A.가격 = B.가격 AND B.대여자 = '홍길동');


여기서 궁금한게
서브쿼리는 A.가격 = B.가격 그리고 B.대여자 = '홍길동' 인 행을 반환해야 하잖음

근데 이렇게 되면 서브쿼리에서 나오는 행은 한 개 아닌가? 
즉, A.가격 = B.가격 조건은 어차피 같은 테이블이니 모든 행을 반환할거고
B.대여자 = '홍길동' 이니, 홍길동이 대여한 행만 '1'로 나올거라고 생각했는데

실제로 MySQL로 실행해보니 또 결과처럼 나오대... 대체 무슨 개념을 놓치고 있는건지 모르겠다