ใน MySQL สามารถใช้ JOIN ภายในคำสั่ง UPDATE เพื่ออัปเดตคอลัมน์ในตารางหนึ่งด้วยค่าจากตารางอีกตารางหนึ่ง โดยจับคู่ด้วยคีย์ร่วม
ตัวอย่างการใช้งาน
สร้างตาราง 2 ตาราง มี Id ร่วมกัน:
mysql> create table DemoTable1 (Id int, Name varchar(10)); mysql> insert into DemoTable1 values(100,'Bob'); mysql> create table DemoTable2 (Id int, FirstName varchar(10)); mysql> insert into DemoTable2 values(100,'Adam');
ข้อมูลก่อนอัปเดต:
DemoTable1: Id=100, Name='Bob' DemoTable2: Id=100, FirstName='Adam'
คำสั่งอัปเดต Name ใน DemoTable1 จาก FirstName ใน DemoTable2
mysql> update DemoTable1
-> join DemoTable2 on DemoTable1.Id = DemoTable2.Id
-> set DemoTable1.Name = DemoTable2.FirstName;
ผลลัพธ์หลังอัปเดต (Name กลายเป็น Adam)
+------+------+ | Id | Name | +------+------+ | 100 | Adam | +------+------+
คำอธิบาย:
- รูปแบบ:
UPDATE table1 JOIN table2 ON table1.key = table2.key SET table1.col = table2.col - สามารถใช้
LEFT JOINได้ หากต้องการอัปเดตแม้ไม่มีคู่ใน table2 (จะเป็น NULL) - รองรับหลายตาราง:
UPDATE t1 JOIN t2 ON ... JOIN t3 ON ... SET ... - MySQL รองรับ UPDATE JOIN ตรงตัว ไม่ต้องใช้ Subquery