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

อัปเดตข้อมูลในตารางหนึ่งจากข้อมูลในตารางอื่นใน MySQL หรือไม่


สำหรับสิ่งนี้ คุณสามารถใช้คำสั่ง UPDATE ร่วมกับ JOIN ได้

ให้เราสร้างตารางแรก -

mysql> สร้างตาราง demo54−> (−> firstName varchar(20),−> นามสกุล varchar(20)−> );แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.57 วินาที)

แทรกระเบียนบางส่วนลงในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า demo54 ('John', 'Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงในค่า demo54 ('John', 'Smith'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงในค่า demo54 ('David', 'Smith'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก demo54;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+----------+| ชื่อจริง | นามสกุล |+-----------+----------+| จอห์น | สมิธ || จอห์น | สมิธ || เดวิด | Smith |+-----------+----------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตารางที่สอง -

mysql> สร้างตาราง demo55−> (−> firstName varchar(20),−> นามสกุล varchar(20)−> );แบบสอบถามตกลง ได้รับผลกระทบ 0 แถว (1.93 วินาที)

แทรกระเบียนบางส่วนลงในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า demo55 (ชื่อแรก) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงใน demo55 (ชื่อแรก) ค่า ('David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.13 วินาที) mysql> แทรกลงในค่า demo55 (ชื่อจริง) ('Bob'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก demo55;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+----------+| ชื่อจริง | นามสกุล |+-----------+----------+| จอห์น | NULL || เดวิด | NULL || บ๊อบ | NULL |+-----------+----------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่ออัปเดตข้อมูลในตารางหนึ่งจากตารางอื่น

mysql> UPDATE demo55 tbl1−> JOIN demo54 tbl2 ON tbl1.firstName =tbl2.firstName−> set tbl1.lastName =tbl2.lastName; Query OK, 2 แถวได้รับผลกระทบ (0.10 วินาที) แถวที่ตรงกัน:2 เปลี่ยน:2 คำเตือน :0

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก demo55;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+----------+| ชื่อจริง | นามสกุล |+-----------+----------+| จอห์น | สมิธ || เดวิด | สมิธ || บ๊อบ | NULL |+-----------+----------+3 แถวในชุด (0.00 วินาที)