EXISTS (EXISTS)
اینجا با «EXISTS» آشنا می شوی. «زیرپرس وجو (Subquery)» یعنی پرس وجوی داخل پرس وجو. EXISTS فقط چک می کند رکوردی برمی گردد یا نه. مثل این که ببینی در کلاس اصلاً کسی دست بالا برده یا نه.
EXISTS چیست و چه می کند؟
عبارت EXISTS وجود حداقل یک رکورد از زیرپرس وجو را می سنجد. اگر حتی یک نتیجه باشد، شرط درست می شود. بنابراین نیازی به شمردن نیست؛ فقط بودن مهم است.
مثال: قیمت کمتر از 20
تأمین کنندگانی که حداقل یک محصول با قیمت کمتر از 20 دارند:
SELECT SupplierName;
FROM Suppliers;
WHERE EXISTS (
SELECT ProductName;
FROM Products;
WHERE SupplierId = Suppliers.supplierId AND Price < 20;
);
مثال: قیمت مساوی 22
تأمین کنندگانی که حداقل یک محصول دقیقاً با قیمت 22 دارند:
SELECT SupplierName;
FROM Suppliers;
WHERE EXISTS (
SELECT ProductName;
FROM Products;
WHERE SupplierId = Suppliers.supplierId AND Price = 22;
);
گام های سریع برای استفاده
- ابتدا شرط زیرپرس وجو را مشخص کن.
- سپس آن را داخل EXISTS قرار بده.
- در نهایت شرط EXISTS را در WHERE استفاده کن.
نکته ها و هشدارها
نکته: EXISTS فقط وجود را می سنجد، نه تعداد را. بنابراین سریع است.
نکته: معمولاً ستون ها در زیرپرس وجو اهمیت ندارند؛ وجود رکورد کافی است.
هشدار: ارتباط درست بین جداول را در شرط زیرپرس وجو فراموش نکن.
لینک های مرتبط
برای ادامه، صفحه EXEC و FOREIGN KEY را ببین. همچنین خود EXISTS را به عنوان مرجع سریع داشته باش.