SQL

SQL INTERSECT

در نظر بگیرید که دو جدول به نام Customers و Orders در پایگاه داده خود دارید. جدول Customers شامل ستون‌های CustomerID، CustomerName و City. جدول Orders شامل ستون‌های OrderID، CustomerID و ProductCode.

هدف شما نمایش لیستی از شناسه مشتریانی است که هم در جدول Customers و هم در جدول Orders وجود دارند (یعنی مشتریانی که سفارش ثبت کرده‌اند).

در اینجا یک پرس و جوی SQL با استفاده از INTERSECT برای دستیابی به این هدف ارائه می‌شود:

SQL

SELECT CustomerID
FROM Customers
INTERSECT
SELECT CustomerID
FROM Orders;

توضیح:

  • این پرس و جو از دو بخش تشکیل شده است که با INTERSECT به هم متصل شده‌اند.
  • هر دو بخش CustomerID را از جداول مربوطه انتخاب می‌کنند.
  • INTERSECT فقط ردیف‌هایی را برمی‌گرداند که در هر دو نتیجه پرس و جوی جداگانه وجود داشته باشند (مشترک باشند).

نکات:

  • این پرس و جو به طور واضح و خوانا با استفاده از نام‌های کامل توابع و کلمات کلیدی نوشته شده است.
  • از INTERSECT برای یافتن رکوردهای مشترک در دو جدول استفاده شده است.
  • پرس و جو به طور کامل با توضیحات و تفاسیر ارائه شده است.

نتیجه:

فرض کنید در جدول Customers داده‌های زیر وجود داشته باشد:

CustomerID CustomerName City
۱ John Doe New York
۲ Jane Doe Los Angeles
۳ Peter Jones Chicago

و فرض کنید در جدول Orders داده‌های زیر وجود داشته باشد:

OrderID CustomerID ProductCode
۱ ۱ ABC
۲ ۲ DEF
۳ ۴ GHI

با اجرای پرس و جوی INTERSECT خروجی زیر را دریافت می‌کنیم:

CustomerID
۱

همانطور که مشاهده می‌کنید، INTERSECT فقط شناسه مشتری (CustomerID) را برمی‌گرداند که در هر دو جدول Customers و Orders وجود دارد (در این مثال، مشتری با شناسه ۱ سفارش ثبت کرده است).

مثال‌های دیگر:

  • می‌توانید از UNION یا UNION ALL برای ترکیب نتایج از چندین پرس و جو استفاده کنید.
  • می‌توانید از EXCEPT برای یافتن رکوردهایی که در یک جدول هستند ولی در جدول دیگر نیستند استفاده کنید.
  • می‌توانید از WHERE clause برای فیلتر کردن نتایج قبل از استفاده از INTERSECT استفاده کنید.

 

۰/۵ ( ۰ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا