SQL EXISTS Operator

در SQL از EXISTS Operator برای بررسی وجود رکوردها در یک زیرکوئری (Subquery) استفاده می‌کنیم.
اگر زیرکوئری حداقل یک ردیف برگردونه، شرط EXISTS برابر با TRUE میشه.

🔹 ساختار کلی

SELECT column1, column2 FROM table_name WHERE EXISTS (subquery);
  • اگر subquery نتیجه‌ای داشته باشه → شرط برقرار (TRUE).

  • اگر subquery خالی باشه → شرط برقرار نیست (FALSE).

🔹 مثال ساده

جدول: Customers

customer_idcustomer_name
1Ali
2Sara
3Reza

جدول: Orders

order_idcustomer_idamount
11500
22300

کوئری:

SELECT customer_name FROM Customers c WHERE EXISTS ( SELECT 1 FROM Orders o WHERE o.customer_id = c.customer_id );

📌 خروجی:

customer_name
Ali
Sara

توضیح: فقط مشتری‌هایی نمایش داده شدن که سفارش ثبت شده دارن.

🔹 مثال با NOT EXISTS

SELECT customer_name FROM Customers c WHERE NOT EXISTS ( SELECT 1 FROM Orders o WHERE o.customer_id = c.customer_id );

📌 خروجی:

customer_name
Reza

توضیح: مشتری‌هایی که هیچ سفارشی ندارن نمایش داده میشن.

🔹 نکات مهم

  • معمولاً از EXISTS همراه با زیرکوئری استفاده میشه.

  • داخل زیرکوئری معمولاً SELECT 1 یا SELECT * می‌نویسن (تفاوتی نداره، فقط وجود رکورد مهمه).

  • EXISTS به محض پیدا کردن اولین رکورد، نتیجه رو TRUE برمی‌گردونه (بهینه‌تر از IN در بعضی موارد).