در (IN)
«عملگر IN» برای مقایسه سریع با چند مقدار است. یعنی به جای چند «OR»، یک فهرست کوتاه می دهی. پس خوانایی بهتر می شود و خطاها کمتر می شوند.
تعریف عملگر IN
عملگر «IN» داخل شرط «WHERE» یک فهرست از مقادیر مجاز می گیرد. این فهرست یعنی رکورد وقتی انتخاب می شود که مقدار ستون در آن لیست باشد.
SELECT *
FROM customers
WHERE country IN ('Germany', 'France', 'UK');
نقیض: NOT IN
با «NOT IN» دقیقا برعکس می گیری. یعنی رکوردهایی که مقدارشان در لیست نیست.
SELECT *
FROM customers
WHERE country NOT IN ('Germany', 'France', 'UK');
IN روی نتیجه یک کوئری (IN (SELECT))
می توانی لیست را با خروجی «SELECT» بسازی. پس وابستگی ها را پویا نگه می داری.
SELECT *
FROM customers
WHERE customer_id IN (
SELECT customer_id
FROM orders
);
NOT IN با زیرکوئری
برای پیدا کردن رکوردهای بدون ارتباط، «NOT IN (SELECT ...)» بنویس. این یعنی عضو نتایج زیرکوئری نیست.
SELECT *
FROM customers
WHERE customer_id NOT IN (
SELECT customer_id
FROM orders
);
گام های تمرینی سریع
- ستون هدف در «WHERE» را انتخاب کن.
- فهرست مقادیر را داخل پرانتز بنویس.
- از «NOT» برای نقیض استفاده کن.
نکته: برای جستجوی الگو، بخش LIKE را ببین. همچنین برای بازه ها به BETWEEN سر بزن.
جمع بندی سریع
- IN یعنی مقایسه با یک لیست کوتاه.
- NOT IN یعنی بیرون از لیست.
- IN می تواند خروجی یک SELECT باشد.
- خوانایی بهتر از چند OR پشت سرهم است.