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

INSERT ข้อมูลจาก SELECT ใน MySQL (INSERT ... SELECT)

สามารถนำผลลัพธ์จาก SELECT ไป INSERT ลงตารางอื่นได้โดยไม่ต้องใช้ VALUES รูปแบบ:

INSERT INTO targetTable (col1, col2, ...)
SELECT col1, col2, ... FROM sourceTable WHERE condition;

ตัวอย่าง: คัดลอกข้อมูลระหว่างตาราง

สร้างตารางปลายทาง (ว่าง) และต้นทาง (มีข้อมูล):

mysql> CREATE TABLE FirstTableDemo (StudentId INT, StudentName VARCHAR(100));
mysql> CREATE TABLE SecondTableDemo (Id INT, Name VARCHAR(100));
mysql> INSERT INTO SecondTableDemo VALUES (1,'John'), (2,'Sam');

คัดลอกข้อมูลที่ยังไม่มีในตารางปลายทาง

mysql> INSERT INTO FirstTableDemo (StudentId, StudentName)
    -> SELECT Id, Name FROM SecondTableDemo AS tbl1
    -> WHERE tbl1.Id NOT IN (SELECT StudentId FROM FirstTableDemo);

ผลลัพธ์: คัดลอก 2 เรคคอร์ดเข้า FirstTableDemo

ประโยชน์: เหมาะสำหรับย้ายข้อมูล, สำรองข้อมูล, หรือสร้างตารางสรุปจากข้อมูลดิบ