ล่าสุดการพัฒนาเว็บบทเรียน
 

SQLคำสั่ง INSERT INTO SELECT


กับ SQL คุณสามารถคัดลอกข้อมูลจากตารางหนึ่งไปยังอีก

แทรกเข้าไปในคำสั่งเลือกคัดลอกข้อมูลจากตารางหนึ่งและแทรกลงในตารางที่มีอยู่


คำสั่ง SQL INSERT INTO SELECT

แทรกลงในคำสั่ง SELECT เลือกข้อมูลจากตารางหนึ่งและแทรกลงในตารางที่มีอยู่ แถวใด ๆ ที่มีอยู่ในตารางเป้าหมายได้รับผลกระทบ

SQL INSERT INTO SELECT ไวยากรณ์

เราสามารถคัดลอกคอลัมน์ทั้งหมดจากตารางหนึ่งไปยังอีกตารางที่มีอยู่:

INSERT INTO table2
SELECT * FROM table1;

หรือเราสามารถคัดลอกเฉพาะคอลัมน์ที่เราต้องการที่จะเข้ามาในอีกตารางที่มีอยู่:

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

ฐานข้อมูลการสาธิต

ในการกวดวิชานี้เราจะใช้ที่รู้จักกันดีฐานข้อมูลตัวอย่าง Northwind

ด้านล่างนี้คือการเลือกจาก "Customers" ตาราง:

ลูกค้า ชื่อลูกค้า ชื่อผู้ติดต่อ ที่อยู่ เมือง รหัสไปรษณีย์ ประเทศ
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico

และเลือกจาก "Suppliers" ตาราง:

SupplierID ชื่อผู้ผลิต ชื่อผู้ติดต่อ ที่อยู่ เมือง รหัสไปรษณีย์ ประเทศ โทรศัพท์
1 ของเหลวที่แปลกใหม่ ชาร์ลอคูเปอร์ กิลเบิร์ 49 เซนต์ ของกรุงลอนดอน EC1 4SD สหราชอาณาจักร (171) 555-2222
2 นิวออร์จัน Delights เชลลีย์เบิร์ค PO Box 78934 New Orleans 70117 สหรัฐอเมริกา (100) 555-4822
3 Homestead ยายของเคลลี่ เรจิน่าเมอร์ฟี่ ฟอร์ด 707 ถ Ann Arbor 48104 สหรัฐอเมริกา (313) 555-5735

ตัวอย่าง SQL INSERT INTO SELECT

คัดลอกเพียงไม่กี่คอลัมน์จาก "Suppliers" ลงไปใน "Customers" :

ตัวอย่าง

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
ลองตัวเอง»

คัดลอกเฉพาะซัพพลายเออร์ที่ภาษาเยอรมันเป็น "Customers" :

ตัวอย่าง

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';
ลองตัวเอง»