خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نحوه Right Join کردن جداول مختلف در SQL Server
در این پست نحوه RIGHT JOIN را در SQL Server برای ارتباط دو یا چند جدول با یکدیگر را مشاهده خواهید کرد. RIGHT JOINبه شما این امکان را می دهد که کوئری خود را روی دو یا چندین جدول ایجاد کنید و خروجی بگیرید. همه رکوردهای جدول سمت راست را که با جدول سمت چپ منطبق هستند را بر میگرداند و اگر هیچگونه انطباقی بین رکوردهای جدول سمت راست با چپ وجود نداشته باشد، Null برمی گرداند. در Syntax زیر نحوه جوین دو جدول T1 و T2 با استفاده از Right JOIN نشان داده شده است:
ضمنا به این نکته توجه داشته باشید که RIGHT OUTER JOIN و RIGHT JOIN هر دو یکسان هستند. در این Syntax، جداول T1 و T2 به ترتیب جداول چپ و راست هستند. برای هر ردیف از جدول T2 ، کوئری مربوطه آن را با تمام ردیف های جدول T1 مقایسه می کند. اگر انطباقی بین هر رکورد از جدول T2 با ردیف های T1 یافت شد(بسته به اینکه شرط تطبیق در کوئری چه باشد)، Result Set ایجاد می شود.
Venn diagram زیر عملیات RIGHT JOIN را نشان می دهد:
حالا به سراغ مثال هایی در خصوص Left Join می رویم. ابتدا دو جدول products و order_items را ایجاد کنید. فیلد های هر دو جدول مطابق با تصویر زیر ایجاد شود:
در کوئری زیر order_id از جدول sales.order_items و product name از جدول production.products را نمایش می دهد.
کوئری فوق تمام رکوردهای جدول production.products و sales.order_items را برمی گرداند. اگر محصولی هیچ فروشی نداشته باشد order_id در آن ردیف برابر Null خواهد بود. حالا فیلتر دیگری با استفاده از WHERE به کوئری فوق اضافه می کنیم تا محصولاتی که فروشی نداشته اند نمایش داده شوند.
SELECT
select_list
FROM
T1
RIGHT JOIN T2 ON join_predicate;
ضمنا به این نکته توجه داشته باشید که RIGHT OUTER JOIN و RIGHT JOIN هر دو یکسان هستند. در این Syntax، جداول T1 و T2 به ترتیب جداول چپ و راست هستند. برای هر ردیف از جدول T2 ، کوئری مربوطه آن را با تمام ردیف های جدول T1 مقایسه می کند. اگر انطباقی بین هر رکورد از جدول T2 با ردیف های T1 یافت شد(بسته به اینکه شرط تطبیق در کوئری چه باشد)، Result Set ایجاد می شود.
Venn diagram زیر عملیات RIGHT JOIN را نشان می دهد:
حالا به سراغ مثال هایی در خصوص Left Join می رویم. ابتدا دو جدول products و order_items را ایجاد کنید. فیلد های هر دو جدول مطابق با تصویر زیر ایجاد شود:
در کوئری زیر order_id از جدول sales.order_items و product name از جدول production.products را نمایش می دهد.
SELECT
product_name,
order_id
FROM
sales.order_items o
RIGHT JOIN production.products p
ON o.product_id = p.product_id
ORDER BY
order_id;
کوئری فوق تمام رکوردهای جدول production.products و sales.order_items را برمی گرداند. اگر محصولی هیچ فروشی نداشته باشد order_id در آن ردیف برابر Null خواهد بود. حالا فیلتر دیگری با استفاده از WHERE به کوئری فوق اضافه می کنیم تا محصولاتی که فروشی نداشته اند نمایش داده شوند.
SELECT
product_name,
order_id
FROM
sales.order_items o
RIGHT JOIN production.products p
ON o.product_id = p.product_id
WHERE
order_id IS NULL
ORDER BY
product_name;
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: