Lệnh Left join trong SQL.

Spread the love

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:

ID TEN TUOI MONHOC HOCPHI
01 VIET 20 CNTT 5.000.000
02 HUY 21 TC 4.500.000
03 UYEN 19 KT 3.000.000
04 KHANH 22 QTKD 3.500.000
05 NHUNG 23 TCNK 4.000.000
06 QUYNH 21 TCDN 3.500.000

Và bảng MUONSACH:

STT TEN NGAYMUON SINHVIEN_ID SOTIEN
1001 VIET 18/5/2017 01 300
1002 HUY 19/5/2017 02 320
1003 HUY 19/5/2017 02 330
1004 KHANH 20/5/2017 04 400
1005 NHUNG 21/5/2017 05 500

 

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à:

ID TEN SOTIEN NGAYMUON
01 VIET 300 18/5/2017
02 HUY 320 19/5/2017
02 HUY 330 19/5/2017
03 UYEN NULL NULL
04 KHANH 400 20/5/2017
05 NHUNG 500 21/5/2017
06 QUYNH NULL NULL

 

Ứ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.

Leave a Comment

Your email address will not be published. Required fields are marked *