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

By 3 năm ago

Nếu ai đã quen với hàng tá thông tin được trả về và 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 trong 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. Câu lệnh Left join trong ngôn ngữ lập trình sql 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 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ị trong 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.

Một số điều lưu ý cần biết cơ bản về Left join trong SQL:

Khi dùng lệnh left join sql, kết quả trả về 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 như sau:

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

 

Một ví dụ về câu lệnh left join trong mySQL:

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 khi lập trình ngôn ngữ sql:

Để giúp các bạn dễ hiểu về lý thuyết như trên, dưới đây tôi sẽ đưa ra ví dụ sau: mối quan hệ trong 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 bên trái. Trong một bảng kết nối bên trái sẽ trả về 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 bên trái (bảng khách hàng), ngay cả khi không có kết quả phù hợp với thông tin trong 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à 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 rất dễ và trong tầm tay.

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 trong sự 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 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 thật tốt. Cuối cùng, chúng tôi chúc các bạn học tốt và hoàn thành công việc hiệu quả.

Share
Thảo Larskanis

Tốt nghiệp Graduated Windesheim 2020, top Đại học lớn nhất thế giới, tôi mở blog chia sẻ kiến thức, kinh nghiệm về SQL