วิธีการใช้ SQL query เพื่อ update ข้อมูลจากตาราง A มาใ่ส่ในตาราง B

สมัยก่อนการจะอัปเดทข้อมูลจาก ตารางหนึ่งมาใ่สในอีกตารางหนึ่ง โดยใช้ MySQL อาจจะต้องใช้ เทคนิคของโปรแกรมมิ่งมาช่วย
แต่วันนี้ไม่จำเป็นแล้วครับเพราะ MySQL 5 สามารถรองรับ Query ที่ใช้สำหรับงานนี้ได้แล้ว มาดูกัน…

สมมติว่าเรามีข้อมูล 2 ตารางคือ
ตาราง A ซึ่งมีโครงสร้างดังนี้
———————————–
|    ID     |    Name  |             Email               |
———————————–
|    1      |    kao     |    kao@codeans.com    |
|    2      |    mod    |    mod@codeans.com   |
|    3      |    boy     |    boy@codeans.com    |
|    4      |     au      |      au@codeans.com    |
———————————–

ตาราง B ซึ่งมีโครงสร้างดังนี้
—————————————-
|    Contact_id    |            Email             |   Detail    |
—————————————-
|          1           |    mod@codeans.com  |  blah !!!   |
|          2           |    mod@codeans.com  |  fooo !!!   |
|          3           |    kao@codeans.com   |  moo !!!   |
|          4           |     au@codeans.com    |   eiei !!!   |
—————————————-

จาก 2 ตารางด้านบนถ้าเราต้องการเพิ่ม field A.ID เข้ามาในตาราง B เราจะต้องทำอย่างไร?
วิธีการคือ
- สร้างฟิลด์ id ในตาราง B ให้มีคุณสมบัติเหมือนตาราง A
- หลังจากนั้นใช้ Query ดังนี้เพื่ออัปเดทข้อมูล

UPDATE B SET B.id =(SELECT ID FROM A WHERE A.Email =B.Email);

เป็นอันเรียบร้อย อีกวิธีคือใช้ Store procedure ซึ่งจะแนะนำต่อไปครับ

About the Author