آموزش SQL Server - آموزش Join | بلاگ

آموزش SQL Server - آموزش Join

ساخت وبلاگ

در این مقاله از سری مقاله های آموزش SQL Server  به آموزش انواع join می پردازیم :

کلید واژه Join برای ترکیب سطر های دو یا چند جدول به کار می رود. ایج ترین نوع Join –Inner join (پیوند داخلی) است که تمام سطر هایی از جدول های گوناگون را که از شرط Join پیروی می کنند فرا می خواند. بیایید نگاهی به گزیده ای از جدول "Orders"( سفارشات) در پایین بیاندازیم.

 

حالا نگاهی به گزیده ای از جدول "Customers" در زیر بیاندازید:

 

دقت داشته باشید که ستون "Customers ID" در جدول "Orders" به ستون "Customers ID" در جدول "Customers" اشاره دارد. رابطه بین دو جدول بالا ستون "Customer ID" می باشد. بنابراین اگر ما عبارت SQL زیر را که شامل (INNER JOIN) می باشد اجرا کنیم.

SELECT Orders.OrderID, Customers.CompanyName
, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;

 

آموزش JOIN

قبل از اینکه مثال ها را ادامه دهیم انواع پیوندهایی که می توان از آنها استفاده کرد را به همراه تفاوت های آن ها بیان می کنیم.

  • کلید واژه INNER JOIN : سطرهایی را که در هر دو جدول تناظر دارند را بر می گرداند.
  • کلید واژه LEFT JOIN : تمامی سطرها را از جدول سمت چپ و همچنین سطر هایی را از جدول سمت راست که با جدول سمت چپ متناظر هستند را فرا می خواند.
  • کلید واژه RIGHT JOIN : تمام سطر ها را از جدول سمت راست و همچنین سطرهایی را از جدول سمت چپ که با جدول سمت راست متناظر هستند را فرا می خواند.
  • کلید واژه FULL JOIN : تمام ردیف های موجود در جداول را با وجود حتی یک همخوانی میان جداول فرا می خواند.

 

آموزش INNER JOIN

کلید واژه INNER JOIN سطرهایی از هر دو جدول را انتخاب می کند که حداقل یک داده متناظر در ستون های مرتبط با هم داشته باشد.

فرم عبارت INNER JOIN

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
یا:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

نکته :

تفاوتی بین JOIN و INNER JOIN وجود ندارد یا به عبارت دیگر INNER JOIN همان JOIN است.

 

نحوه استفاده از کلید واژه INNER JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

 

جدول زیر نیز گزیده ای از جدول "Orders" می باشد:

 

آموزش انواع join : مثال استفاده از کلید واژه INNER JOIN

عبارت SQL زیر تمام مشتریان را همراه با شماره سفارشاتشان لیست می کند:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

نکته :

عبارت کلیدی INNER JOIN سطرهایی که حداقل یک تناظر در دو جدول داشته باشند را برمی گرداند. اگر سطری در جدول Customers وجود دارد که تناظری با جدول Orders ندارد، آن سطر لیست نمی شود.

 

آموزش دستور LEFT JOIN

کلید واژه LEFT JOIN تمام سطر های جدول سمت چپ (table1) و آندسته از سطر های جدول سمت راست (table2) را که با جدول سمت چپ متناظر است فرا می خواند. اگر در جدول سمت راست سطر متناظری وجود نداشته باشد نتیجه در سمت راست صفرAnchor خواهد بود.

فرم کلید واژه LEFT JOIN

 SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
یا :
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

نکته :

در برخی از پایگاه های داده LEFT JOIN به نام LEFT OUTER JOIN نیز نامیده می شود.

 

نحوه استفاده از کلید واژه LEFT JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

 

آنچه در زیر می بینید گزیده ای است از جدول "Orders":

 

مثال استفاده از کلید واژه LEFT JOIN

عبارت SQL زیر تمام مشتریان و سفارشاتشان را لیست می کند:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

نکته :

کلید واژه LEFT JOIN تمام سطرهای جدول سمت چپ (Customers) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت راست (Orders) وجود نداشته باشد.

 

آموزش دستور RIGHT JOIN

کلید واژه RIGHT JOIN تمام سطر های جدول سمت راست (table2) و آندسته از سطر های جدول سمت چپ (table1) را که با جدول سمت راست متناظر است فرا می خواند. اگر در جدول سمت چپ سطر متناظری وجود نداشته باشد نتیجه در سمت چپ صفرAnchor خواهد بود.

فرم کلید واژه RIGHT JOIN

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
یا :
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

نکته :

در برخی از پایگاه های داده RIGHT JOIN به نام RIGHT OUTER JOIN نیز نامیده می شود.

نحوه استفاده از کلید واژه RIGHT JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Orders" انتخاب شده است:

آنچه در زیر می بینید گزیده ای است از جدول "EmployeesAnchor":

 

مثال استفاده از کلید واژه RIGHT JOIN

عبارت SQL زیر لیست تمام کارمندان و سفارشات آنها را فرا می خواند:

SELECT Orders.OrderID, Employees.FirstName
FROM Orders
RIGHT JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID
ORDER BY Orders.OrderID;

نکته :

کلید واژه RIGHT JOIN تمام سطرهای جدول سمت راست (Employees) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت چپ (Orders) وجود نداشته باشد.

 

آموزش OUTER JOIN

کلید واژه FULL OUTER JOIN تمام ردیف های جدول سمت چپ (table1) و سمت راست (table2) را فرا می خواند. کلید واژه FULL OUTER JOIN نتایج بدست آمده از پیوند های چپ و راستAnchor را با یکدیگر ترکیب می کند.

فرم کلید واژه FULL OUTER JOIN

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

 

نحوه استفاده از کلید واژه FULL OUTER JOIN در پایگاه داده

در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:

 

مثال استفاده از کلید واژه FULL OUTER JOIN

عبارت SQL زیر تمام مشتریان و سفارشاتشان را انتخاب می کند:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

نتیجه بدست آمده از عبارت بالاAnchor به شکل زیر می باشد:

 

نکته :

کلید واژه FULL OUTER JOIN تمام سطرهای جدول سمت چپ (Customers) و تمام سطرهای موجود در جدول سمت راست (Orders) را بر می گرداند. اگر سطری در جدول Customers وجود دارد که تناظری در جدول Orders ندارد یا اگر سطری در جدول Orders وجود دارد که تناظری در جدول Customers ندارد با این وجود این سطرها نیز در جدول نتیجه نمایش داده خواهند شد.

 

با دیگر مقاله های ما در زمینه آموزش SQL Server همراه باشید..

آموزش برنامه نویسیآموزش sql server, دوره آموزش sql server, آموزش انواع join, آموزش join, join در sql,...
ما را در سایت آموزش برنامه نویسی دنبال می کنید

نویسنده : پیمان کلانتری بازدید : 245 تاريخ : چهارشنبه 12 آذر 1399 ساعت: 20:30