티스토리 뷰

🌈 MsSql

exists VS in

James Wetzel 2024. 3. 8. 15:33

1.사용 목적:
EXISTS: 서브쿼리의 결과가 하나라도 존재하는지 확인하는 데 사용됩니다.
IN: 서브쿼리의 결과 중에서 특정 값이 존재하는지 확인하는 데 사용됩니다.

 

2.쿼리 실행 방식:
EXISTS: 서브쿼리를 먼저 실행하고, 메인쿼리에서 서브쿼리의 결과가 존재하는지 확인합니다.
IN: 메인쿼리에서 서브쿼리의 결과를 모두 가져와서 비교합니다.

 

3.성능:
EXISTS: 서브쿼리의 결과가 적을 때는 IN보다 성능이 좋지만, 많을 때는 IN보다 성능이 떨어집니다.
IN: 서브쿼리의 결과가 많을 때는 EXISTS보다 성능이 좋지만, 적을 때는 EXISTS보다 성능이 떨어집니다.

 

SELECT *
FROM Table1
WHERE EXISTS (SELECT 1 FROM Table2 WHERE Table1.id = Table2.id);

 

SELECT *
FROM Table1
WHERE Table1.id IN (SELECT id FROM Table2);
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함