دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
security policy در Sql Server
1404/05/05 -
کنترل pageSetupDialog در سی شارپ
1404/05/03 -
نقش (Role) در Sql Server
1404/05/02 -
کنترل OpenFileDialog در سیشارپ
1404/04/31 -
ایجاد و مدیریت کاربر (User) در Sql Server
1404/04/30 -
کنترل MonthCalendar در سیشارپ
1404/04/29
Outer Join در پایگاه داده SQL

Outer Join در پایگاه داده SQL
uter Join در SQL نوعی اتصال بین جداول است که تمام رکوردهای یک یا هر دو جدول را بازمیگرداند، حتی اگر در جدول دیگر دادهی مطابقی وجود نداشته باشد.
برخلاف Inner Join که فقط رکوردهای مشترک را نمایش میدهد، در Outer Join اگر تطابقی وجود نداشته باشد، مقدار NULL در ستونهای مربوط به جدول دیگر قرار میگیرد.
این نوع اتصال برای نمایش تمام دادههای یک یا هر دو جدول، حتی در صورت نبود تطابق، بسیار مفید است.
از Outer Join معمولاً در گزارشگیریها و تحلیلهای دادهای استفاده میشود، جایی که نمایش تمامی دادهها مهمتر از تطابق دقیق میان جداول است.
به عنوان مثال، اگر بخواهیم فهرست تمام مشتریان را همراه با سفارشات آنها نمایش دهیم، حتی اگر برخی از مشتریان سفارشی نداشته باشند، این نوع اتصال به ما کمک میکند تا دادههای بدون تطابق را نیز ببینیم.
انواع Outer Join در SQL
-
Left Outer Join
LEFT OUTER JOIN تمامی رکوردهای جدول سمت چپ را باز میگرداند و در صورتی که تطابقی در جدول سمت راست نباشد، مقدار NULL برای آن فیلدها درج میشود.
مثال Left Outer Join
SELECT Customers.CustomerID, Customers.Name, Orders.OrderID
FROM Customers
LEFT OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
در این مثال، تمامی مشتریان نمایش داده میشوند. اگر سفارشی برای آنها وجود داشته باشد، نمایش داده میشود و در غیر این صورت مقدار NULL در ستون OrderID درج میشود.
-
Right Outer Join
RIGHT OUTER JOIN مشابه Left Outer Join عمل میکند اما تمامی رکوردهای جدول سمت راست را باز میگرداند، حتی اگر در جدول سمت چپ تطابقی وجود نداشته باشد.
مثال Right Outer Join
SELECT Customers.CustomerID, Customers.Name, Orders.OrderID
FROM Customers
RIGHT OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
در این مثال، تمامی سفارشات نمایش داده میشوند. اگر مشتری برای سفارش وجود داشته باشد، نمایش داده میشود و در غیر این صورت مقدار NULL در ستون CustomerID درج میشود.
-
Full Outer Join
FULL OUTER JOIN تمامی رکوردهای هر دو جدول را باز میگرداند، حتی اگر در جدول مقابل تطابقی وجود نداشته باشد.
مثال Full Outer Join
SELECT Customers.CustomerID, Customers.Name, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
در این مثال، تمامی مشتریان و تمامی سفارشات نمایش داده میشوند.
اگر تطابقی وجود داشته باشد، دادهها ترکیب میشوند. اگر تطابقی وجود نداشته باشد، مقدار NULL در ستونهای جدول مقابل درج میشود.
تفاوت Outer Join و Inner Join
در حالی که Inner Join فقط دادههای مشترک بین دو جدول را نمایش میدهد، Outer Join تمام دادههای یکی یا هر دو جدول را باز میگرداند.
اگر رکوردی در یکی از جداول تطابق نداشته باشد، مقدار NULL در جدول دیگر نمایش داده میشود.
استفاده از نوع مناسب Join تأثیر زیادی بر عملکرد پایگاه داده و دقت گزارشها دارد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
استفادههای کاربردی از Outer Join
-
پیدا کردن رکوردهای بدون تطابق
گاهی اوقات نیاز داریم دادههایی را پیدا کنیم که در یک جدول وجود دارند اما در جدول دیگر تطابق ندارند.
مثال: پیدا کردن مشتریانی که سفارشی ثبت نکردهاند
SELECT Customers.CustomerID, Customers.Name
FROM Customers
LEFT OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID
WHERE Orders.OrderID IS NULL;
-
ترکیب دادهها از چند منبع
زمانی که دادههایی از چندین منبع داریم و میخواهیم همهی آنها را در یک گزارش نمایش دهیم، FULL OUTER JOIN میتواند بسیار مفید باشد.
مثالهای کاربردی از Outer Join در SQL
مثال 1: استفاده از Left Outer Join برای نمایش تمام مشتریان و سفارشات آنها
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
این کوئری تمام مشتریان را نمایش میدهد، حتی آنهایی که سفارشی ثبت نکردهاند. اگر سفارشی نداشته باشند، مقدار NULL در ستون OrderID نمایش داده میشود.
مثال 2: استفاده از Right Outer Join برای نمایش تمام سفارشات و مشتریان مربوطه
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
این کوئری تمام سفارشات را نشان میدهد، حتی اگر مشتریای که سفارش را ثبت کرده در جدول مشتریان موجود نباشد.
مثال 3: استفاده از Full Outer Join برای نمایش تمام دانشجویان و تمام دورههای آموزشی
SELECT Students.StudentName, Courses.CourseName
FROM Students
FULL OUTER JOIN Courses ON Students.CourseID = Courses.CourseID;
این کوئری تمام دانشجویان و تمام دورههای آموزشی را نمایش میدهد، حتی اگر برخی دانشجویان ثبتنام نکرده باشند یا برخی دورهها بدون دانشجو باشند.
مثال 4: بررسی لیست کارکنان و پروژهها، حتی اگر برخی کارکنان در پروژهای نباشند و برخی پروژهها مسئول نداشته باشند
SELECT Employees.EmployeeName, Projects.ProjectName
FROM Employees
FULL OUTER JOIN Projects ON Employees.ProjectID = Projects.ProjectID;
این کوئری تمامی کارکنان و تمامی پروژهها را نمایش میدهد، حتی اگر برخی کارکنان هنوز به پروژهای اختصاص داده نشده باشند یا برخی پروژهها بدون مسئول باشند.
مثال 5: مقایسه لیست محصولات فروختهشده و محصولات موجود در انبار
SELECT Inventory.ProductName, Sales.SaleDate
FROM Inventory
FULL OUTER JOIN Sales ON Inventory.ProductID = Sales.ProductID;
این کوئری تمام محصولات موجود در انبار و تمام محصولات فروختهشده را نشان میدهد، حتی اگر برخی محصولات هنوز فروخته نشده باشند یا برخی محصولات فروختهشده دیگر در انبار نباشند.
نکته: Outer Join در گزارشگیری و تحلیل دادههایی که ارتباط کامل بین جداول ندارند، بسیار مفید است.
دوره های مرتبط

آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .