آموزش SQL

عبارت JOIN

عبارت JOIN جهت برای اتصال دو یا چند جدول به یکدیگر بر اساس یک ستون مشابه صورت استفاده می شود.

برای مثال های این بخش، جداول زیر را در نظر بگیرید. جدول اول orders است که سفارشات در آن قرار می گیرد.

OrderIDCustomerIDOrderDate
1030821996-09-18
1030911996-09-19
1031031996-09-20
جدول دوم، جدول مشتریان است که مشخصات مشتری ها در آن قرار گرفته است.
CustomerIDCustomerNameCity
1Ariya MehrianFoolad Shahr
2Koorosh JahangiriShiraz
3Bardia SasaniTehran

توجه داشته باشید که ستون CustomerID در جدول orders با CustomerID درون جدول مشتری ها یکی است؛ به عبارت دیگر در جدول orders فقط کد مشتری قرار گرفته است و باقی مشخصات آن وجود ندارد. پس برای اینکه بتوانیم بقیه مشخصات آن را ببینیم باید آن دو جدول را توسط کدی به یکدیگر متصل کنیم؛ که برای این کار از همان JOIN به شکل زیر استفاده می کنیم:

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID; آنگاه نتیجه ای این ترکیب به شکل زیر می باشد:
OrderIDCustomerNameOrderDate
10308Koorosh Jahangiri1996-09-18
10309Ariya Mehrian1996-09-19
10310Bardia Sasani1996-09-20

انواع ارتباطات (JOIN)

در SQL انواع مختلفی از ارتباطات وجود دارند که برخی از آن ها عبارتند از:
  • INNER JOIN (JOIN): رکوردهایی را باز می گرداند که در هر دو جدول چپ و راست مقدار متناظری وجود داشته باشد.
  • LEFT (OUTER) JOIN: همه رکورد های جدول اول یا سمت چپ را بر می گرداند، و اگر مقداری در جدول دوم یا سمت راست وجود داشت روبروی آن قرار می دهد، و اگر مقداری هم وجود نداشت، همه سمت چپی ها را بر می گرداند و به جای سمت راستی ها مقدار null نشان می دهد و بر می گرداند.
  • RIGHT (OUTER) JOIN:همه رکورد های جدول دوم یا سمت راستی را بر می گرداند، و اگر مقداری در جدول اول یا سمت چپ وجود داشت روبروی آن قرار می دهد، و اگر مقداری هم وجود نداشت، همه سمت راستی ها را بر می گرداند و به جای سمت چپی ها مقدار null نشان می دهد و بر می گرداند.
  • FULL (OUTER) JOIN: همه رکوردهای سمت چپ و راست را بر می گرداند و اگر متناظر هم بودند روبروی هم قرار می دهد.