خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه Left Join کردن جداول مختلف در SQL Server

نحوه  Left Join کردن جداول مختلف در SQL Server
در این پست نحوه LEFT JOIN را در SQL Server برای ارتباط دو یا چند جدول با یکدیگر را مشاهده خواهید کرد. LEFT JOIN به شما این امکان را می دهد که کوئری خود را روی دو یا چندین جدول ایجاد کنید و خروجی بگیرید. همه رکوردهای جدول سمت چپ را که با جدول سمت راست منطبق هستند را بر میگرداند و اگر هیچگونه انطباقی بین رکوردهای جدول سمت چپ با راست وجود نداشته باشد، Null برمی گرداند. در Syntax زیر نحوه جوین دو جدول T1 و T2 با استفاده از LEFT JOIN نشان داده شده است:

سیستم یکپارچۀ سازمانی راهکار



SELECT
select_list
FROM
T1
LEFT JOIN T2 ON
join_predicate;

در این Syntax، جداول T1 و T2 به ترتیب جداول چپ و راست هستند. برای هر ردیف از جدول T1 ، کوئری مربوطه آن را با تمام ردیف های جدول T2 مقایسه می کند. اگر انطباقی بین هر رکورد از جدول T1 با ردیف های T2 یافت شد(بسته به اینکه شرط تطبیق در کوئری چه باشد)، Result Set ایجاد می شود.

نحوه  Left Join کردن جداول مختلف در SQL Server
حالا به سراغ مثال هایی در خصوص Left Join می رویم. ابتدا دو جدول products و order_items را ایجاد کنید. فیلد های هر دو جدول مطابق با تصویر زیر ایجاد شود:

نحوه  Left Join کردن جداول مختلف در SQL Server
هر رکورد sales order شامل یک product_id است. پس ستون Product_id عامل جوین این دو جدول می شود. در کوئری زیر LEFT JOIN بین دو جدول مذکور را برقرار می کینم.


SELECT
product_name,
order_id
FROM
production.products p
LEFT JOIN sales.order_items o ON o.product_id = p.product_id
ORDER BY
order_id;

نحوه  Left Join کردن جداول مختلف در SQL Server
همانطور که به وضوح در result set فوق قابل مشاهد است، لیستی از NULL در ستون order_id نشان می دهد که محصولات مربوطه هنوز به هیچ مشتری فروخته نشده اند. برای محدود کردن نتایج باید از WHERE استفاده کنید. کوئری فوق را اصلاح می کنیم و فقط محصولاتی که فروش نداشته اند را لیست می کنیم.

SELECT
product_name,
order_id
FROM
production.products p
LEFT JOIN sales.order_items o ON o.product_id = p.product_id
WHERE order_id IS NULL
ORDER BY
order_id;

نحوه  Left Join کردن جداول مختلف در SQL Server
مثال زیر نحوه جوین شدن به سه جدول را نشان می دهد:

نحوه  Left Join کردن جداول مختلف در SQL Server
جدول جدید sales.orders نام دارد که مطابق با تصویر بالا آنررا ایجاد کنید و حالا سه جدول production.products، sales.order_items و sales.orders با استفاده از LEFT JOIN به هم جوین می دهیم.

SELECT
p.product_name,
o.order_id,
i.item_id,
o.order_date
FROM
production.products p
LEFT JOIN sales.order_items i
ON i.product_id = p.product_id
LEFT JOIN sales.orders o
ON o.order_id = i.order_id
ORDER BY
order_id;

نحوه  Left Join کردن جداول مختلف در SQL Server
در کوئری زیر محصولاتی که متعلق به order id برابر 100 هستند را نمایش می دهد.

SELECT
product_name,
order_id
FROM
production.products p
LEFT JOIN sales.order_items o
ON o.product_id = p.product_id
WHERE order_id = 100
ORDER BY
order_id;

نحوه  Left Join کردن جداول مختلف در SQL Server
حالا order_id = 100 که در WHERE بود را به قسمت ON انتقال می دهیم.

SELECT
p.product_id,
product_name,
order_id
FROM
production.products p
LEFT JOIN sales.order_items o
ON o.product_id = p.product_id AND
o.order_id = 100
ORDER BY
order_id DESC;

نحوه  Left Join کردن جداول مختلف در SQL Server
حالا دو تصویر فوق را خودتان مقایسه کنید و ببنیید که خروجی آنها چه فرق یبا هم دارند.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز