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


نحوه FULL OUTER JOIN کردن جداول مختلف در SQL Server

نحوه FULL OUTER JOIN کردن جداول مختلف در SQL Server
در این پست نحوه FULL OUTER JOIN بین دو یا چند جدول را در SQL Server مورد بررسی قرار می دهیم. FULL OUTER JOIN یک result set ای را بر می گرداند که شامل ردیف ها یا رکوردهایی از هر دو جدول چپ و راست است. در Syntax زیر FULL OUTER JOIN، جوین شدن دو جدول T1 و T2 را نشان می دهد:

نرم افزار سامانه مودیان راهکار



SELECT
select_list
FROM
T1
FULL OUTER JOIN T2 ON join_predicate;

کلمه OUTER در اسکریپت FULL OUTER JOIN اختیاری است و می توانید آن را درج نکنید همانطور که در کوئری زیر مشاهده می کنید، OUTER نوشته نشده است:

SELECT
select_list
FROM
T1
FULL JOIN T2 ON join_predicate;


Venn diagram نحوه FULL OUTER JOIN شدن دو Result set جدول فوق را نشان می دهد:

نحوه FULL OUTER JOIN کردن جداول مختلف در SQL Server
خب، در ادامه با ذکر مثال این نوع جوین را تشریح می کنیم. ابتدا یک schema با نام pm ایجاد کنید(project managements).

CREATE SCHEMA pm;
GO

سپس دو جدول projects و members را در شمای pm ایجاد کنید:

CREATE TABLE pm.projects(
id INT PRIMARY KEY IDENTITY,
title VARCHAR(255) NOT NULL
);

CREATE TABLE pm.members(
id INT PRIMARY KEY IDENTITY,
name VARCHAR(120) NOT NULL,
project_id INT,
FOREIGN KEY (project_id)
REFERENCES pm.projects(id)
);

فرض کنید ، هر یک از اعضا فقط می تواند در یک پروژه شرکت کند و اعضاهر پروژه می تواند صفر یا تعدادی عضو داشته باشد. اگر پروژه هنوز به صورت عملی شروع نشده و در مرحله فکر و ایده باشد، هیچ عضوی نباید داشته باشد.
خب، حالا چند رکورد به جداول projects و members اضافه می کنیم:

INSERT INTO
pm.projects(title)
VALUES
('New CRM for Project Sales'),
('ERP Implementation'),
('Develop Mobile Sales Platform');


INSERT INTO
pm.members(name, project_id)
VALUES
('John Doe', 1),
('Lily Bush', 1),
('Jane Doe', 2),
('Jack Daniel', null);

حالا با یک دستور ساده Select مقادیر جداول را در مقابلمان مشاهده می کنیم:

SELECT * FROM pm.projects;

نحوه FULL OUTER JOIN کردن جداول مختلف در SQL Server
SELECT * FROM pm.members;

نحوه FULL OUTER JOIN کردن جداول مختلف در SQL Server
در آخر با استفاده از FULL OUTER JOIN، کوئری خود را روی جداول members و projects ایجاد می کنیم:

SELECT
m.name member,
p.title project
FROM
pm.members m
FULL OUTER JOIN pm.projects p
ON p.id = m.project_id;

نحوه FULL OUTER JOIN کردن جداول مختلف در SQL Server
در این مثال ، اعضایی را که در پروژه ها شرکت می کنند، اعضایی را که در هیچ پروژه ای شرکت نمی کنند و پروژه هایی را که هیچ عضوی ندارند، نمایش داده شد.
برای یافتن پروژه هایی که هیچ عضوی ندارند و همچنین اعضایی که در هیچ پروژه ای عضو نیستند، با WHERE به کوئری فوق اضافه کنید:

SELECT
m.name member,
p.title project
FROM
pm.members m
FULL OUTER JOIN pm.projects p
ON p.id = m.project_id
WHERE
m.id IS NULL OR
P.id IS NULL;

نحوه FULL OUTER JOIN کردن جداول مختلف در SQL Server

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

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

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


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