Làm cách nào để CẬP NHẬT giá trị từ một bảng khác trong MySQL?

CẬP NHẬT TableName1 SET TableName1. col1 = TableName2. col1, TableName1. col2 = TableName2. col2 TỪ Some_Table AS TableName1 INNER THAM GIA Other_Table AS TableName2 ON TableName1. id = TableName2. id WHERE TableName1. cột3 = 'Có'

Làm cách nào để CẬP NHẬT giá trị từ một bảng khác trong MySQL?

Hãy chia sẻ

Trong hướng dẫn này, chúng ta sẽ xem xét các cách khác nhau để cập nhật các hàng trong bảng bằng cách sử dụng SQL tiến triển từ các cập nhật chung hơn sang các phương pháp cụ thể hơn

Cập nhật đầy đủ

Nếu mọi trường cần được cập nhật thành cùng một giá trị, bạn có thể thực hiện việc đó bằng cách sử dụng lệnh UPDATE đơn giản

UPDATE table
SET col = new_value;

Cập nhật có điều kiện

Để thực hiện cập nhật có điều kiện tùy thuộc vào việc giá trị hiện tại của một cột có khớp với điều kiện hay không, bạn có thể thêm mệnh đề WHERE xác định điều này. Đầu tiên, cơ sở dữ liệu sẽ tìm các hàng khớp với mệnh đề WHERE và sau đó chỉ thực hiện cập nhật trên các hàng đó

UPDATE table
SET col = new_value
WHERE col = old_value;

Để mở rộng vấn đề này, bạn có thể thêm bất cứ thứ gì vào mệnh đề WHERE mà bạn thích miễn là đó là một biểu thức hợp lệ. Vì vậy, để thực hiện cập nhật dựa trên giá trị của một cột khác trong cùng một bảng, bạn có thể thực hiện như sau

UPDATE table
SET col = new_value
WHERE other_col = some_other_value;

Vì mệnh đề WHERE có thể chứa bất kỳ biểu thức hợp lệ nào, nên bạn cũng có khả năng thực hiện cập nhật khi nhiều cột đáp ứng tiêu chí

UPDATE table
SET col = new_value
WHERE col = old_value
AND other_col = some_other_value;

UPDATE table
SET col = new_value
WHERE col = old_value
OR other_col = some_other_value;

Như bạn có thể thấy, bạn có thể mở rộng mệnh đề WHERE bao nhiêu tùy thích để lọc xuống các hàng nhằm cập nhật những gì bạn cần

Bây giờ điều gì sẽ xảy ra nếu bạn muốn cập nhật các hàng trong một bảng dựa trên điều kiện của một bảng khác?

Vì mệnh đề WHERE có thể chứa bất kỳ biểu thức hợp lệ nào, nên bạn có thể sử dụng truy vấn con

UPDATE table
SET col = new_value
WHERE other_col IN (
SELECT other_col
FROM other_table
WHERE conditional_col = 1
);

Bạn cũng có thể sử dụng truy vấn con trong phần

UPDATE table
SET col = new_value
WHERE col = old_value;
4 của câu lệnh nếu bạn muốn đặt cột thành một giá trị trong bảng khác

UPDATE table
SET col = (
SELECT other_col
FROM other_table
WHERE other_table.table_id = table.id
);

Có lẽ một cách dễ dàng hơn là chỉ định nhiều bảng sau mệnh đề UPDATE. Chỉ biểu thức

UPDATE table
SET col = new_value
WHERE col = old_value;
4 sẽ thực hiện cập nhật nhưng việc liệt kê các bảng bổ sung sẽ cho phép bao gồm các bảng

________số 8_______

Tương tự như việc mở rộng mệnh đề WHERE, số lượng bảng có thể được mở rộng để bao gồm tất cả các bảng bạn cần nếu bạn có nhiều bảng cần được nối vào

Làm cách nào để CẬP NHẬT một bảng có giá trị từ bảng khác MySQL?

The UPDATE THAM GIA là một câu lệnh MySQL được sử dụng để thực hiện cập nhật bảng chéo có nghĩa là chúng ta có thể cập nhật một bảng bằng bảng khác với THAM GIA . Truy vấn này cập nhật và thay đổi dữ liệu trong đó có nhiều bảng được nối dựa trên Khóa CHÍNH và Khóa NGOẠI TỆ và một điều kiện nối được chỉ định.

Làm cách nào để CẬP NHẬT một giá trị cột từ một bảng khác trong MySQL?

Nếu bạn có trường chung trong cả hai bảng thì thật dễ dàng. .
thực hiện truy vấn trong Bảng-1 và tìm giá trị trường chung
tạo một vòng lặp và tìm tất cả dữ liệu từ Bảng-2 theo giá trị của bảng 1
một lần nữa thực hiện truy vấn cập nhật trong bảng 1

Làm cách nào để lấy giá trị từ một bảng khác trong MySQL?

1 câu trả lời .
Hãy thử sử dụng truy vấn dưới đây. CHÈN VÀO TARGET_TABLE CHỌN * TỪ SOURCE_TABLE;
Tuy nhiên, nếu các bảng có cấu trúc khác nhau thì bạn có thể sử dụng truy vấn này. CHÈN VÀO TARGET_TABLE (`col1`,`col2`) CHỌN `col1`,`col2` TỪ SOURCE_TABLE;
Để hạn chế, sử dụng cái này

Làm cách nào để CẬP NHẬT một trường bảng từ một trường bảng khác trong SQL?

Trong trường hợp này, bạn có thể sử dụng cú pháp câu lệnh UPDATE sau để cập nhật cột từ một bảng, dựa trên giá trị của bảng khác. CẬP NHẬT first_table, second_table SET first_table. column1 = second_table. column2 WHERE first_table. id = second_table .