2014. 1. 5. 22:33


당연히 EXISTS 사용하는것이 효율적입니다.


예를들어서 회원  한번이라도 주문했던 적이 있는 회원리스트를 본다고  


SELECT *

FROM 회원테이블 WHERE EXISTS (SELECT * FROM 주문테이블 WHERE 주문테이블.아이디 = 회원테이블.아이디)


이렇게 쿼리를 했다면 특정회원이 1 주문을 했던 1000 주문을 했던 상관없이 주문테이블을  한건만 확인을 합니다.


하지만


SELECT *

FROM 회원테이블 WHERE (SELECT COUNT(*) FROM 주문테이블 WHERE 주문테이블.아이디 = 회원테이블.아이디) > 0


이렇게 쿼리를 했다면

한번만 주문을  경우 주문건은 한건을 COUNT 하겠지만, 1000번을 주문  경우 1000 모두를 읽어서 COUNT 하게 됩니다.

Posted by 팔개