دستور LEFT JOIN در SQL
دستور LEFT JOIN در SQL تمامی رکورد های جدول سمت چپ (table1) و تمامی رکورد های منطبق و همسان جدول سمت راست (table2) را بر می گرداند.
در صورتی که در جدول سمت راست (table2) مطابقت وجود نداشته باشد نتیجه خروجی از جدول سمت راست 0 رکورد خواهد بود.
نحوه استفاده از دستور LEFT JOIN
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
نکته: در برخی از پایگاه های داده بجای LEFT JOIN از دستور LEFT OUTER JOIN استفاده می کنند ، توجه داشته باشید که هیچ تفاوتی بین این دو نیست و معادل هم هستند.
نحوه استفاده از LEFT OUTER JOIN در SQL
SELECT column-names
FROM table-name1
LEFT OUTER JOIN table-name2 ON column-name1 = column-name2
WHERE condition
نمونه بانک اطلاعاتی
رکورد های نمونه از جدول "Customers"
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
رکورد های نمونه از جدول "Orders"
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
مثال برای دستور LEFT JOIN
دستورات SQL زیر مقدار OrderID
و CustomerID
دو جدول Orders
و Customers
را باهم مقایسه کرده و در صورت برابر بودن آنها را همراه با CustomerName
بر می گرداند.
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
نکته: دستور LEFT JOIN
تمامی رکورد های جدول Customers
را بر می گرداند حتی اگر مشتری OrderID
در جدول Orders
نداشته باشد.
توضیحات به زبان ساده: اگه داخل دستورات بالا دقت کرده باشید گفتیم که نام مشتری ها رو همراه با OrderID هاشون رو برای ما لیست کنه ، حالا اگر مشتری ای سفارشی ثبت نکرده باشه بازم نام اون مشتری لیست میشه تنها با این تفاوت که ستون OrderID اون مشتری برابر با NULL خواهد بود.
نمونه خروجی دستورات بالا:
CustomerName | OrderID |
---|---|
Alfreds Futterkiste | null |
Ana Trujillo Emparedados y helados | 10308 |
Antonio Moreno Taquería | 10365 |
Around the Horn | null |
Around the Horn | 10383 |
B’s Beverages | null |
Berglunds snabbköp | 10278 |
Berglunds snabbköp | 10280 |
Berglunds snabbköp | null |
Blauer See Delikatessen | null |
آیا این مطلب برای شما مفید بود ؟