با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره آموزش کامل SQL را دنبال می کنند. در حال حاضر بخش هایی از آموزش های این دوره را به آشنایی با دستور JOIN و زیر مجموعه های آن ، اختصاص داده ایم. و تاکنون نیز از زیر مجموعه های این دستور، به INNER JOIN در SQL ، اشاره کرده ایم. در این بخش نیز در بررسی مباحث آشنایی با دستور LEFT JOIN در SQL و ساختار دستور LEFT JOIN ، شما را با زیر مجموعه ای دیگر از دستور JOIN ، آشنا خواهیم کرد.
دستور LEFT JOIN همه رکوردها را از جدول سمت چپ (جدول ۱) و رکوردهای همسان را از جدول راست (جدول ۲) باز می گرداند.
در صورتی که رکوردهایی با فیلدی با مقدار یکسان از جدول۲ وجود نداشته باشد، نتیجه NULL بازگردانده می شود.
1 2 3 | SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name; |
نکته: در برخی از بانک های اطلاعاتی دستور LEFT JOIN با نام LEFT OUTER JOIN، شناخته می شود.
بخشی از رکوردهای جدول “Customers” :
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
۱ | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | ۱۲۲۰۹ | Germany |
۲ | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | ۰۵۰۲۱ | Mexico |
۳ | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | ۰۵۰۲۳ | Mexico |
بخشی از رکوردهای جدول “Orders” :
rID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
۱۰۳۰۸ | ۲ | ۷ | ۱۹۹۶-۰۹-۱۸ | ۳ |
۱۰۳۰۹ | ۳۷ | ۳ | ۱۹۹۶-۰۹-۱۹ | ۱ |
۱۰۳۱۰ | ۷۷ | ۸ | ۱۹۹۶-۰۹-۲۰ | ۲ |
در مثال زیر ابتدا دو فیلد از جداول Customers و Orders انتخاب می شود. سپس رکوردهایی که فیلد CustomerID آن ها در هر دو جدول یکسان است، نمایش داده می شود:
1 2 3 4 | SELECT Customers.CustomerName, Orders.OrderID FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY Customers.CustomerName; |
نکته: دستور LEFT JOIN ،در هر صورت رکوردهایی را از جدول Customers بر می گرداند. حتی اگر مقدار همسان آن ها در جدول Orders موجود نباشد.
تفاوت اصلی دستور LEFT JOIN با دستور INNER JOIN در SQL، در این است که دستور INNER JOIN در صورتی که رکوردهایی با فیلد یکسان در هر دو جدول باشد را برمی گرداند. اما دستور LEFT JOIN، حتی اگر فیلدهایی با مقادیر یکسان در دو جدول نباشد، رکوردهایی را بر می گرداند. ما در بخش آشنایی با دستور LEFT JOIN در SQL نیز، شما را با یکی دیگر از زیر مجموعه های دستور اصلی JOIN آشنا ساختیم.
امیدواریم که این آموزش نیز مورد توجه و رضایت شما قرار گرفته باشد.