เพื่ออัปเดตค่าในตาราง 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)