Bài MySQL 30: Lệnh UPDATE JOIN trong MySQL

0
152

Xin chào các bạn, trong bài học ngày hôm nay mình sẽ hướng dẫn các bạn sử dụng câu lệnh UPDATE JOIN để thực hiện cập nhật bảng chéo với hai nội dung chính là cách sử dụng lệnh INNER JOINLEFT JOIN với câu lệnh UPDATE.

Cú pháp của câu lệnh UPDATE JOIN

Chúng ta thường sử dụng các câu lệnh JOIN để truy vấn các hàng trong một bảng có (trong trường hợp INNER JOIN) hoặc có thể không có (trong trường hợp LEFT JOIN) các hàng tương ứng trong một bảng khác. Trong MySQL, các bạn có thể sử dụng mệnh đề JOIN trong câu lệnh UPDATE để thực hiện cập nhật bảng chéo.

Cú pháp của câu lệnh UPDATE JOIN như sau:

Chi tiết về cú pháp UPDATE JOIN:

  • Đầu tiên, bạn chỉ định bảng chính (T1) và bảng phụ mà bạn muốn kết nối (T2) sau câu lệnh UPDATE. Lưu ý rằng bạn phải chỉ định ít nhất một bảng sau câu lệnh UPDATE. Dữ liệu trong bảng không được chỉ định sau câu lệnh UPDATE sẽ không được cập nhật.
  • Thứ hai, bạn phải chỉ định một kiểu JOIN mà bạn muốn sử dụng như INNER JOIN hoặc LEFT JOIN. Câu lệnh JOIN phải xuất hiện ngay sau câu lệnh UPDATE.
  • Thứ ba, bạn phải chỉ định giá trị mới cho các cột trong bảng T1 hoặc T2 mà bạn muốn cập nhật.
  • Thứ tư, điều kiện trong câu lệnh WHERE cho phép bạn chỉ định những hàng cần cập nhật.

Nếu bạn đã xem qua bài hướng dẫn sử dụng câu lệnh UPDATE thì bạn sẽ nhận thấy rằng có một cách khác để cập nhật chéo dữ liệu bằng cách sử dụng cú pháp sau:

Ví dụ về câu lệnh UPDATE JOIN

Chúng ta sẽ sử dụng 2 bảng là employeesmerits, trong đó:

  • Bảng employees lưu trữ dữ liệu nhân viên với id, name, performance và salary.
  • Bảng merits lưu trữ performance  của nhân viên và phần trăm hiệu suất(performance’s percentage).

Các câu lệnh sau tạo và tải dữ liệu trong cơ sở dữ liệu empdb:

Ví dụ về câu lệnh UPDATE JOIN với INNER JOIN

Giả sử bạn muốn điều chỉnh mức lương của nhân viên dựa trên hiệu suất của họ.

Do đó, tỷ lệ phần trăm của hiệu suất được lưu trữ trong bảng merits, bạn phải sử dụng câu lệnh UPDATE INNER JOIN để điều chỉnh mức lương của nhân viên trong bảng employees dựa trên tỷ lệ phần trăm được lưu trữ trong bảng merits. Truy vấn như sau:

kết quả trả về là:

Ví dụ về câu lệnh UPDATE JOIN với LEFT JOIN

Giả sử công ty cần thuê thêm hai nhân viên:

Bởi vì những nhân viên này là người mới thuê nên dữ liệu hiệu suất của họ không có sẵn hoặc NULL. Vì vậy để tăng lương cho những người mới, bạn không thể sử dụng câu lệnh UPDATE INNER JOIN vì dữ liệu hiệu suất của họ không có sẵn trong bảng merits. Đây là lý do vì sao bạn cần sử dụng lệnh LEFT JOIN.

Ví dụ: bạn có thể tăng mức lương cho người mới lên 1,5% bằng cách sử dụng truy vấn sau:

kết quả trả về là:

Kết luận

Như vậy trong bài học ngày hôm nay mình đã hướng dẫn các bạn sử dụng câu lệnh UPDATE JOIN để thực hiện cập nhật bảng chéo. Trong bài học tiếp theo chúng ta sẽ tìm hiểu về câu lệnh DELETE trong MySQL.

Chúc các bạn học tập tốt!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây