Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào chúng ta có thể cập nhật các giá trị trong một bảng MySQL bằng cách sử dụng các giá trị của một bảng MySQL khác?

Để cập nhật các giá trị trong một bảng MySQL bằng cách sử dụng các giá trị từ một bảng MySQL khác, chúng ta cần sử dụng truy vấn con như một biểu thức trong mệnh đề SET của câu lệnh UPDATE.

Ví dụ

Trong ví dụ này, chúng ta có hai bảng "student" và "info". Chúng tôi sẽ cập nhật giá trị của cột "điểm" của bảng "sinh viên" bằng cách sử dụng các giá trị từ cột "nhận xét" của bảng "thông tin".

mysql> select * from student;
+----+---------+-------+
| Id | Name    | grade |
+----+---------+-------+
| 1  | Rahul   | NULL  |
| 2  | Gaurav  | NULL  |
| 3  | Raman   | NULL  |
| 4  | Harshit | NULL  |
| 5  | Aarav   | NULL  |
+----+---------+-------+
5 rows in set (0.01 sec)

mysql> select * from info;
+------+-----------+
| id   | remarks   |
+------+-----------+
| 1    | Good      |
| 2    | Good      |
| 3    | Excellent |
| 4    | Average   |
| 5    | Best      |
+------+-----------+
5 rows in set (0.00 sec)

mysql> UPDATE STUDENT SET grade = (SELECT remarks from info WHERE info.id = student.id) WHERE id > 0;
Query OK, 5 rows affected (0.08 sec)
Rows matched: 5 Changed: 5 Warnings: 0

Truy vấn ở trên, với sự trợ giúp của truy vấn phụ, cập nhật các giá trị trong cột điểm của bảng "sinh viên". Nó có thể được quan sát từ tập kết quả được trả về bằng cách truy vấn MySQL.

mysql> Select * from student;
+----+---------+-----------+
| Id | Name    | grade     |
+----+---------+-----------+
| 1  | Rahul   | Good      |
| 2  | Gaurav  | Good      |
| 3  | Raman   | Excellent |
| 4  | Harshit | Average   |
| 5  | Aarav   | Best      |
+----+---------+-----------+
5 rows in set (0.00 sec)