+2 امتیاز
قبل در برنامه نویسی توسط (7.2هزار امتیاز)

برای محدود کردن نتایج یک کوئری می توان از دو کلمه کلیدی IN و EXISTS استفاده کرد.

برای مثال 2 کوئری زیر یک نتیجه را بر می گردانند.

SELECT *
  FROM customer
 WHERE customer_id IN (SELECT customer_id
                         FROM selected_cust_group_membership scg
                        WHERE scg.scg_id = 40001923);

SELECT *
  FROM customer c
 WHERE EXISTS (SELECT customer_id
                 FROM selected_cust_group_membership scg
                WHERE scg.scg_id = 40001923
                      AND scg.customer_id = c.customer_id);

استفاده از کدام یک صحیح تر است ؟

آیا استفاده از EXISTS مزیت خاصی در اختیار برنامه نویس قرار می دهد؟

1 پاسخ

+2 امتیاز
قبل توسط (505 امتیاز)

معمولا وقتی یه لیست محدود دارید، از in استفاده می شود:

select * from [table]
where [field] in (1, 2, 3)

 

وقتی subquery کوچک است،In سریعتر است و وقتی subquery، بزرگتر است، exist سریعتر است

سوالات مشابه

0 امتیاز
2 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 545 بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
3 پاسخ 2.1هزار بازدید
...