Trong MySQL, bạn có thể cập nhật nhiều bảng cùng lúc bằng cách sử dụng lệnh UPDATE
với các bảng kết hợp (JOIN). Điều này cho phép bạn thay đổi dữ liệu trên nhiều bảng trong một truy vấn duy nhất. Đây là một phương pháp mạnh mẽ để đồng bộ hóa dữ liệu giữa các bảng có liên kết với nhau.
UPDATE
với nhiều bảngUPDATE table1, table2
SET table1.column = value1, table2.column = value2
WHERE table1.column = table2.column_condition;
table1
, table2
: Tên của các bảng bạn muốn cập nhật.SET
: Xác định các cột và giá trị mới cho mỗi bảng.WHERE
: Điều kiện để xác định mối quan hệ giữa các bảng và hàng nào sẽ được cập nhật.Giả sử bạn có hai bảng:
employees
với các cột employee_id
, department_id
, salary
.departments
với các cột department_id
, department_name
.Bạn muốn cập nhật lương của nhân viên trong bảng employees
và tên của phòng ban trong bảng departments
dựa trên một điều kiện cụ thể.
Ví dụ: Tăng lương cho tất cả các nhân viên trong phòng ban có department_id = 3
và đổi tên của phòng ban này thành “Marketing”.
UPDATE employees AS e, departments AS d
SET e.salary = e.salary + 500, d.department_name = 'Marketing'
WHERE e.department_id = d.department_id
AND d.department_id = 3;
employees AS e
: Đặt bí danh e
cho bảng employees
để truy xuất nhanh hơn.departments AS d
: Đặt bí danh d
cho bảng departments
.employees
(tăng lương) và bảng departments
(đổi tên phòng ban).JOIN
trong UPDATE
Bạn có thể sử dụng JOIN
để kết hợp các bảng và cập nhật dữ liệu dựa trên mối quan hệ giữa chúng.
UPDATE table1
JOIN table2 ON table1.column = table2.column
SET table1.column = value1, table2.column = value2
WHERE condition;
Ví dụ: Nếu bạn muốn cập nhật lương cho các nhân viên thuộc một phòng ban dựa trên thông tin từ bảng departments
, bạn có thể thực hiện như sau:
UPDATE employees AS e
JOIN departments AS d ON e.department_id = d.department_id
SET e.salary = e.salary + 500
WHERE d.department_name = 'Sales';
Câu lệnh này sẽ tăng lương cho tất cả nhân viên trong phòng ban có tên là “Sales”.
UPDATE
nhiều bảngWHERE
: Đảm bảo điều kiện của bạn đúng để tránh cập nhật sai dữ liệu trên cả hai bảng.WHERE
và JOIN
có chỉ mục (indexes) để tăng tốc độ truy vấn.Việc cập nhật nhiều bảng trong một truy vấn MySQL là một tính năng hữu ích, cho phép bạn thay đổi dữ liệu liên quan giữa các bảng một cách nhanh chóng. Với lệnh UPDATE
kết hợp với JOIN
, bạn có thể đảm bảo rằng các thay đổi được áp dụng đồng thời trên nhiều bảng, giúp duy trì tính đồng bộ dữ liệu.