Left join là gì?

LEFT JOIN, còn gọi là LEFT OUTER JOIN,  dùng để lấy dữ liệu ra từ cả hai bảng, kết quả là tất cả các record ở bảng trái (bảng đầu tiên), và những record đáp ứng được điều kiện JOIN của bảng phải (bảng thứ hai).

Nếu record nào không đáp ứng được điều kiện sẽ có kết quả trả về là NULL.

HÌnh minh họa:

Hình minh họa left join

Cú pháp:

SELECT Tên_Các_Cột
FROM Bảng_1
LEFT JOIN Bảng_2
ON Bảng_1.Tên_Cột = Bảng_2.Tên_Cột;

Ví dụ: Sử dụng câu lệnh LEFT JOIN để Join hai bảng Customers và Orders trong database NorthWind.

USE northwind; 

GO 

INSERT INTO Customers 
            (CustomerID, 
             CompanyName, 
             ContactName, 
             Address, 
             Phone) 
VALUES     ( 'Demo', 
             'Test LEFT JOIN Company Name', 
             '1 ContactName', 
             '1 Test Address', 
             '1 098' ); 

-- Ví dụ 1: Sử dụng câu lệnh LEFT JOIN để Join hai bảng Customers và Orders 
SELECT Customers.CustomerID, 
       Customers.ContactName, 
       Customers.Address, 
       Customers.Phone, 
       Orders.OrderID, 
       Orders.ShipAddress 
FROM   Customers 
       LEFT JOIN Orders 
              ON Customers.CustomerID = Orders.CustomerID 
ORDER  BY Customers.ContactName; 

Kết quả:

kết quả lệnh left join

Lưu ý: Trong câu lệnh truy vấn trên, ta thêm một Record có CustomerID = 'Demo', ContactName = '1 ContactName'.

Sở dĩ ta làm điều này là để so sánh LEFT JOIN và INNER JOIN. Ở kết quả  đầu tiên, chỉ bảng Customers có record chứa CustomerID = 'Demo'. Bảng Orders không có record nào có CustomerID = 'Demo'. Do vậy record này không đáp ứng được điều kiện JOIN là Customers.CustomerID =Orders.CustomerID . Tuy nhiên vì nó nằm ở bảng trái (bảng đầu tiên – Customers), nên kết quả trả về phải có nó, bảng phải (Orders) không có record nào  có CustomerId = 'Demo'. Vì thế OrderId và ShipAddress = NULL

Nếu thay đổi lệnh trên bằng INNER JOIN kết quả trả về sẽ không có record chứa CustomerID = 'Demo'.

USE northwind; 

GO 

SELECT Customers.CustomerID, 
       Customers.ContactName, 
       Customers.Address, 
       Customers.Phone, 
       Orders.OrderID, 
       Orders.ShipAddress 
FROM   Customers 
       INNER JOIN Orders 
               ON Customers.CustomerID = Orders.CustomerID 
ORDER  BY Customers.ContactName; 

Kết quả trả về của lệnh Inner Join

Tài liệu tham khảo: http://www.w3schools.com/sql/sql_join_left.asp

Bạn có thể tham khảo cách cài đặt database northwind tại đây:
http://hocdai.com/sql-can-ban/cai-dat-sql/cai-dat-database-northwind

Các môn học khác

Chương trình thường được xây dựng quanh dữ liệu và logic để xử lý chúng. Nói cách khác: Program = Cấu trúc dữ liệu + giải thuật. Do vậy đây là môn học bắt buộc dành cho các lập trình viên.

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.

Khóa học này cung cấp cho ta kiến thức nền tảng về công nghệ Blockchain, Bitcoin. Vì sao nó được gọi là công nghệ của tương lai, vì sao giá Bitcoin lại cao đến vậy. Làm sao để mua Bitcoin, ETH.