سوال ) تفاوت In/Not In و Exists/Not Exists در چیست ؟ کدامیک سریع تر هستند ؟
الف) تفاوت در نتیجه
همیشه Not In و Not Exists شبیه هم نیستند و ممکن است پاسخ های متفاوتی داشته باشند .
(مثال ۱ ) به طور مثال :
select count(*) from emp where empno not in ( select mgr from emp );
COUNT(*)
----------
0
این پاسخ به ما میگوید که همه مدیر هستند .
حال به پرس و جوی زیر دقت کنید :
select count(*) from emp T1 where not exists ( select null from emp T2 where t2.mgr = t1.empno );
COUNT(*)
----------
9
ولی این پاسخ نشان میدهد ۹ نفر مدیر نیستند!
- ۰ نظر
- ۱۵ دی ۹۶ ، ۱۴:۲۲
- ۲۴۳۳ نمایش