Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีอัปเดตค่าในตาราง MySQL โดยใช้ค่าจากตารางอื่น

เพื่ออัปเดตค่าในตาราง MySQL หนึ่งโดยใช้ค่าจากอีกตารางหนึ่ง ต้องใช้ sub-query เป็นนิพจน์ในเงื่อนไข SET ของคำสั่ง UPDATE

ตัวอย่าง

มีตาราง student และ info จะอัปเดตคอลัมน์ grade ของ student โดยใช้ค่าจากคอลัมน์ remarks ของ info

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

คำสั่งด้านบนใช้ sub-query อัปเดตค่าในคอลัมน์ grade ของตาราง student สามารถตรวจสอบได้จากคำสั่งต่อไป:

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)