SQL EXISTS Operator
در SQL از EXISTS Operator برای بررسی وجود رکوردها در یک زیرکوئری (Subquery) استفاده میکنیم.
اگر زیرکوئری حداقل یک ردیف برگردونه، شرط EXISTS
برابر با TRUE میشه.
🔹 ساختار کلی
-
اگر
subquery
نتیجهای داشته باشه → شرط برقرار (TRUE). -
اگر
subquery
خالی باشه → شرط برقرار نیست (FALSE).
🔹 مثال ساده
جدول: Customers
customer_id | customer_name |
---|---|
1 | Ali |
2 | Sara |
3 | Reza |
جدول: Orders
order_id | customer_id | amount |
---|---|---|
1 | 1 | 500 |
2 | 2 | 300 |
کوئری:
📌 خروجی:
customer_name |
---|
Ali |
Sara |
توضیح: فقط مشتریهایی نمایش داده شدن که سفارش ثبت شده دارن.
🔹 مثال با NOT EXISTS
📌 خروجی:
customer_name |
---|
Reza |
توضیح: مشتریهایی که هیچ سفارشی ندارن نمایش داده میشن.
🔹 نکات مهم
-
معمولاً از
EXISTS
همراه با زیرکوئری استفاده میشه. -
داخل زیرکوئری معمولاً
SELECT 1
یاSELECT *
مینویسن (تفاوتی نداره، فقط وجود رکورد مهمه). -
EXISTS
به محض پیدا کردن اولین رکورد، نتیجه رو TRUE برمیگردونه (بهینهتر ازIN
در بعضی موارد).