Tới nội dung chính
Danh mục
Câu lệnh SQL

Cú pháp mệnh đề left join trong sql

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.

1. Left join là gì?

Left join là một trong những câu lệnh phổ biến, thường gặp đối với ngôn ngữ SQL. Ngôn ngữ chung mà bất cứ hệ thống cơ sở dữ liệu quan hệ nào cũng cần phải có.

Join được hiểu là một mệnh đề trong SQL. Sử dụng để kết nối từ hai hay nhiều bảng trong cơ sở dữ liệu với nhau. Khi bạn muốn tìm các cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một kết quả thì bạn cần dùng Join và SQL sẽ đưa ra một bảng có kết quả dữ liệu tạm thời từ JOIN.

Từ đó định nghĩa của JOIN, ta có thể hiểu left join trong sql là kiểu Join trả về tất cả các giá trị từ bảng bên trái, công với các giá trị bảng bên phải, ngay cả khi không có giá trị so khớp nào trong bảng bên phải. Nếu không có dữ liệu sẽ là NULL.

Cơ bản về Left join 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

Câu lệnh:

Câu lệnh của Left join trong mySQL được thực hiện như sau:

SELECT cot1, cot2,… cotn

FROM bang1

LEFT JOIN bang2

ON bang1.cot_chung = bang2.cot_chung;

Chú giải:

  • cot1, cot2, … cotn: là những tên cột cần hiển thị ở kết quả truy vấn và được ngăn cách nhau bởi dấu phẩy (,)
  • bang1, bang2: là tên các bảng chứa các dữ liệu để lấy khi truy vấn.
  • cot_chung: là cột chứa khóa ngoại tham chiếu từ bang1 đến cột có được trong bang2 hoặc tên cột khóa ngoại tham chiếu từ bang2 đến cột có trong bang2.

3. Ví dụ về câu lệnh left join trong sql

Để giúp các bạn dễ hiểu về vấn lý thuyết như tôi đề cập trên, dưới đây tôi sẽ đưa ra ví dụ sau:

Ví dụ mối quan hệ giữa hai bảng được chỉ định bởi customer_id khóa (là khóa chính trong bảng khách hàng và là khóa ngoại trong bảng đơn hàng.

Nếu chúng ta chỉ muốn thông tin về các đơn đặt hàng vào bảng khách hàng bao gồm khách hàng đặt hàng hay không đặt hàng, chúng ta sẽ sử dụng một liên kết trái. Một bảng kết nối bên trái sẽ trả tất cả các bảng ghi từ bảng 1 và bất kỳ bản ghi nào phù hợp từ bảng2. NULL sẽ là kết quả không phù hợp.

SELECT first_name, last name, order_date, order_amount

FROM khách hàng C

LEFT JOIN đơn hàng 0

ON C. customer_id = đơn hàng. ID khách hàng;

Chú ý: từ khóa left join trả về tất cả các bản ghi từ bàng trái (bảng khách hàng), ngay cả khi không có kết quả phù hợp với bảng bên phải (đơn hàng).

Bốn phép nối SQL cơ bản liên liên kết các phần dữ liệu khác nhau lại với nhau vì thế để lấy được dữ liệu từ cơ sở hay kho dữ liệu là một việc rất khó. Nhưng khi ta có sự hiểu biết cơ bản về nó thì việc thực hiện này hoàn toàn rất dễ dàng và nhanh chóng.

SQL là ngôn ngữ truy vấn dữ liệu, nó được ra đời để hỗ trợ thêm cho web service. Hiện nay, nhiều doanh nghiệp dùng nhiều đến nó để quản trị nhân viên hoặc khách hàng của họ. Họ sử dụng cơ sở dữ liệu này để lưu trữ thông tin để bảo mật thông tin một cách tuyệt đối tránh trường hợp rủi ro như bị mất hay sửa, xóa,… những thông tin. 

Sử dụng SQL hiện đang phổ biến, có được sự hiểu biết hơn về ứng dụng này, sẽ giúp các bạn làm việc một cách hiệu quả, nhanh chóng trong giải quyết công việc liên quan về công nghệ thông tin, máy tính cũng như tạo cơ hội thăng tiến trong công việc. 

Hy vọng qua bài đọc này sẽ giúp các bạn có được nhiều thông tin, sự hiểu biết hơn về ứng dụng phổ biến này cũng như những thuật ngữ tin học hiện nay. Đặc biệt, giúp bạn thành thạo hơn trong việc truy vấn và sử dụng câu lệnh left join trong sql. Cuối cùng, chúng tôi chúc các bạn học tốt, hoàn thành công việc hiệu quả, đáp ứng cho nhu cầu cuộc sống.