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

วิธีอัปเดตตาราง MySQL ด้วยข้อมูลจากอีกตารางหนึ่ง

เราสามารถอัปเดตตารางหนึ่งด้วยข้อมูลจากอีกตารางหนึ่งได้โดยใช้ INNER JOIN มาดูตัวอย่างการสร้างตารางและอัปเดตข้อมูลกัน

1. สร้างตารางแรก (tblFirst)

CREATE TABLE tblFirst (
    id INT,
    name VARCHAR(100)
);

2. เพิ่มข้อมูลในตารางแรก

INSERT INTO tblFirst VALUES (1, 'John');
INSERT INTO tblFirst VALUES (2, 'Bob');
INSERT INTO tblFirst VALUES (3, 'David');

3. สร้างตารางที่สอง (UpdTable)

CREATE TABLE UpdTable (
    IncId INT AUTO_INCREMENT PRIMARY KEY,
    id INT,
    name VARCHAR(100)
);

4. เพิ่มข้อมูลในตารางที่สอง

INSERT INTO UpdTable (id, name) VALUES (1, 'Taylor');
INSERT INTO UpdTable (id, name) VALUES (2, 'jason');
INSERT INTO UpdTable (id, name) VALUES (3, 'carol');
INSERT INTO UpdTable (id, name) VALUES (4, 'john');

5. อัปเดตข้อมูลด้วย INNER JOIN

อัปเดตคอลัมน์ id ใน UpdTable ให้ตรงกับ tblFirst โดยจับคู่ด้วยชื่อ (name)

UPDATE UpdTable
INNER JOIN tblFirst ON UpdTable.name = tblFirst.name
SET UpdTable.id = tblFirst.id;

6. ผลลัพธ์หลังอัปเดต

เฉพาะแถวที่ name = 'john' เท่านั้นที่ถูกอัปเดต (id เปลี่ยนจาก 4 เป็น 1)

+-------+------+--------+
| IncId | id   | name   |
+-------+------+--------+
| 1     | 1    | Taylor |
| 2     | 2    | jason  |
| 3     | 3    | carol  |
| 4     | 1    | john   |
+-------+------+--------+

คำอธิบาย

คำสั่ง UPDATE ... INNER JOIN ช่วยให้อัปเดตข้อมูลระหว่างตารางได้โดยการจับคู่เงื่อนไขที่กำหนด เหมาะสำหรับการซิงค์ข้อมูลระหว่างตารางที่เกี่ยวข้องกัน