Nếu ai đã quen với hàng tá dữ liệu cần phải xử lý hằng ngày trên máy tính thì không xa lạ gì đối với SQL. SQL là ngôn ngữ truy vấn mang tính cấu trúc, khá đơn giản và được sử dụng phổ biến trong hệ quản trị CSDL quan hệ. Đối với những ai không có thời gian học thêm, tìm tòi những ứng dụng ngôn ngữ mới thì có thể dùng SQL cho các thao tác dữ liệu trên máy, vừa hiệu quả, nhanh chóng lại tiện dụng, đặc biệt không cần nhớ cấu trúc thuật toán, vẫn có thể thực hiện dễ dàng. Trong lệnh Select của SQL có nhiều chức năng để lấy và thao tác dữ liệu, trong đó left join trong sql khá được chú ý và quan tâm. Lệnh left join trong sql có thể được hiểu như việc trả về giá trị từ các hàng của bảng bên trái vào bảng bên phải, ngay cả khi không có giá trị so khớp nào.

Cơ bản về Left join SQL

left join của sql

Khi dùng lệnh left join sql, kết quả sẽ cộng gộp tất cả các giá trị của các hàng từ bảng bên trái vào bảng bên phải cộng với các giá trị được so khớp từ bảng bên phải, trường hợp không so khớp sẽ trả về NULL cho các hàng.

Cú pháp:

SELECT bang1.cot1, bang2.cot2…FROM bang1LEFT JOIN bang2ON bang1.field_chung = bang2.field_chung;

Từ đó ta có ví dụ diễn giải bảng THONGTIN như sau:

IDTENTUOIMONHOCHOCPHI
01VIET20CNTT5.000.000
02HUY21TC4.500.000
03UYEN19KT3.000.000
04KHANH22QTKD3.500.000
05NHUNG23TCNK4.000.000
06QUYNH21TCDN3.500.000

Và bảng MUONSACH:

STTTENNGAYMUONSINHVIEN_IDSOTIEN
1001VIET18/5/201701300
1002HUY19/5/201702320
1003HUY19/5/201702330
1004KHANH20/5/201704400
1005NHUNG21/5/201705500

 

Khi dùng sql left join tổng hợp hai bảng từ THONGTIN qua MUONSACH, ta có cấu trúc:

SQL> SELECT ID, TEN, SOTIEN, NGAYMUON FROM THONGTIN LEFT JOIN MUONSACH ON THONGTIN.ID = MUONSACH.SINHVIEN_ID;

Và kết quả sẽ là:

IDTENSOTIENNGAYMUON
01VIET30018/5/2017
02HUY32019/5/2017
02HUY33019/5/2017
03UYENNULLNULL
04KHANH40020/5/2017
05NHUNG50021/5/2017
06QUYNHNULLNULL

 

Ứng dụng của mệnh đề Left Join.

Câu lệnh left join trong sql cũng như Right Join luôn đi kèm với ON,cũng giống như lênh Order By trong SQL cũng được dùng chung với lệnh Select, có tác dụng liên kết giữa các bảng trái và phải để xác định số dòng trả về tại cùng thời điểm và xác định các trường của bảng trong kết quả trả về thời điểm này. Khi đặt kế mệnh đề Where, ta có thể thấy điều kiện Join có thể chuyển qua lại với mệnh đề Where, tuy nhiên nó chỉ đúng với Inner Join mà thôi. Where có nhiềm vụ lọc kết quả theo điều kiện nhất định sau khi thực hiện ON và trường của Where chỉ nên chứa trường so sánh của bảng trái.

Left join trong mysql có khả năng sắp xếp, tổng hợp dữ liệu một cách hoàn chỉnh, giúp người dùng dễ thao tác hơn, đặc biệt là đối với hệ CSDL có nhiều bảng cấu trúc và chứa những bản ghi giống nhau. Mysql left join chính là sự lựa chọn tuyệt vời cho hệ dữ liệu lớn. Các mệnh đề Join trong SQL hầu hết được dùng để kết nối các bảng, view, sub query lại với nhau thông qua các foreign key hoặc các cột có giá trị tương ứng giữa hai bảng, view hoặc các sub query, thuận tiện cho các thao tác trên dữ liệu, giúp người dùng quản lý tốt hơn, thao tác nhanh hơn, kết quả chuẩn hơn.

Hầu hết những lệnh trong Join đều có liên quan mật thiết và kết hợp với nhau, nên khi bạn am hiểu một câu lệnh, có thể suy ra được những câu lệnh khác. Trong SQL không cần hiểu sâu xa và nhớ, cũng vì vậy mà nó được ưa chuộng cho các thao tác dữ liệu phổ biến hiện nay.