การ INSERT (อินเสริด) ข้อมูลโดยการดึง(คัดลอก)จากตารางอื่น
INSERT INTO table_name ( column_1, column_2, ..., column_n )
SELECT column_name_1, column_name_2, ..., column_name_n
FROM table_name_1
WHERE condition;
อธิบายคำสั่ง
table_name (เทเบิล_เนม) : ชื่อตารางที่ต้องการเพิ่มข้อมูล
column_1 (คอลัมน์_1) : ชื่อคอลัมน์ในตารางที่ต้องการเพิ่ม
SELECT (ซีเล็ท) : คำสั่งเลือกคอมลัมน์
column_name_1 (คอลัมน์_เนม_1) : ชื่อคอลัมน์ในตารางที่ต้องการดึงข้อมูล
FROM (ฟอร์ม) : คำสั่งเลือกตาราง
table_name_1 (เทเบิล_เนม_1) : ชื่อตารางที่ต้องการดึงข้อมูล
WHERE (แว) : คำสั่งแสดงเงื่อนไข
condition (คอนดิชัน) : เงื่อนไขในการดึงข้อมูล
โค้ด :
INSERT INTO z_testcreatetable_cpartner(id,name,title,email,mobile,birthdate,state_id)
SELECT id,name,title,email,mobile,birthdate,state_id
FROM res_partner
WHERE res_partner.name like ‘%Demo%';
ผลที่ได้ :
ภาพที่ 1 เป็นภาพจากตารางที่มีชื่อว่า res_partner (เรส_พาร์ทเนอร์) ซึ่งในตารางมีข้อมูลอยู่เยอะมาก เราไม่ต้องการทั้งหมด เราต้องการแค่เพียงบางส่วน เราก็ทำการตั้งเงื่อนไขในการดึงข้อมูล(คัดลอก)ข้อมูลเหล่านั้น
ในโค้ดเงื่อนไข เราต้องการแค่เพียงชื่อที่มีคำว่า Demo (เดโม่)
โดยใช้คำสั่งที่ว่า
WHERE res_partner.name like ‘%Demo%';
ผลที่ได้คือ ข้อมูลชื่อ ( name ) จากตาราง res_partner ที่มีคำว่า "Demo" นั้นจะมาอยู่ในตาราง z_testcreatetable_cpartner (แซด_เทสครีเอทเทเบิล_พาร์ทเนอร์) ใหม่ที่เราต้องการ
สามารถศึกษาเพิ่มเติมได้ที่ คำสั่ง SQL ต่างๆ
โดย : http://www.mindphp.com