خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
چک کردن رکوردهای یک جدول SQL Server که در جدول دیگر موجود می باشند(عملگر INTERSECT)
در پست قبلی ما عملگر EXCEPT را که برای بررسی وجود رکوردهای یک جدول که در جدول دیگر وجود نداشتند را بررسی کردیم و دیدید که استفاده از این عملگر بسیار ساده است و حالا در اینجا قصد داریم به بررسی عملگر INTERSECT بپردازیم. بر عکس EXCEPT، عملگر INTERSECT برای بررسی رکوردهایی که بین دو جدول مشترک هستند مورد استفاده قرار می گیرد.
در SQL Server به طرق مختلفی می توانید به این مهم برسید که رایج ترین و متداول ترین تکنیک مورد استفاده INNER JOIN است. ولی استفاده از INTERSECT نسبت به INNER JOIN مزایای کمتری دارد.
➊برعکس INNER JOIN، عملگر INTERSECT می تواند با مقادیر NULL مطابقت داشته و آنها را در Result set برگرداند.
➋عملگر INTERSECT مقادیر تکراری را بر نمی گرداند.
➌عملگر INTERSECT تمامی columns ها یا فیلدهایی که در Select قید شده را مقایسه می کند ولی INNER JOIN فقط ستون های مشخص شده را مقایسه می کند.
خب، حالا به بررسی نحوه استفاده از عملگر INTERSECT می پردازیم. برای این منظور از جداول Sales.Customers و Sales.Orders در پایگاه داده WideWorldImporters استفاده می کنیم. در واقع قرار است ID های مشتریانی که در یک سال خاص، order داشته اند را در Result Set نشان دهدیم.
در SQL Server به طرق مختلفی می توانید به این مهم برسید که رایج ترین و متداول ترین تکنیک مورد استفاده INNER JOIN است. ولی استفاده از INTERSECT نسبت به INNER JOIN مزایای کمتری دارد.
Advantages Of INTERSECT Over INNER JOIN
عملگر INTERSECT در مقایسه با INNER JOIN مزایایی دارد که در ذیل آنها را می خوانید:➊برعکس INNER JOIN، عملگر INTERSECT می تواند با مقادیر NULL مطابقت داشته و آنها را در Result set برگرداند.
➋عملگر INTERSECT مقادیر تکراری را بر نمی گرداند.
➌عملگر INTERSECT تمامی columns ها یا فیلدهایی که در Select قید شده را مقایسه می کند ولی INNER JOIN فقط ستون های مشخص شده را مقایسه می کند.
خب، حالا به بررسی نحوه استفاده از عملگر INTERSECT می پردازیم. برای این منظور از جداول Sales.Customers و Sales.Orders در پایگاه داده WideWorldImporters استفاده می کنیم. در واقع قرار است ID های مشتریانی که در یک سال خاص، order داشته اند را در Result Set نشان دهدیم.
SELECT CustomerID
FROM Sales.Customers
EXCEPT
SELECT CustomerID
FROM Sales.Orders
WHERE YEAR(OrderDate) = 2015
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: