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

กำลังเติมตารางจากผลลัพธ์การสืบค้นใน MySQL หรือไม่


ในการเติมตารางจากผลลัพธ์ของคิวรี ให้ใช้ไวยากรณ์ต่อไปนี้:

INSERT yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,..........N)SELECT yourColumnName1,yourColumnName2,yourColumnName3,..........N จาก yourAnotherTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง ตารางแรกมีดังต่อไปนี้พร้อมบันทึกบางส่วน แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง PopulateTableDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(20), -> Amount int, -> ArrivalDateTime datetime, -> PRIMARY KEY(Id) -> );Query OK , ได้รับผลกระทบ 0 แถว (0.68 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> สร้างตาราง PopulateTableDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(20), -> Amount int, -> ArrivalDateTime datetime, -> PRIMARY KEY(Id) -> );Query OK , ได้รับผลกระทบ 0 แถว (0.68 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงใน PopulateTableDemo(Name,Amount,ArrivalDateTime) values('John',456,'2018-02-4');Query OK, 1 แถวที่ได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงใน PopulateTableDemo(Name, จำนวน,ArrivalDateTime) ค่า ('Carol',1000,'2019-10-21');แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า PopulateTableDemo (ชื่อ,จำนวน,ArrivalDateTime) ('Sam',970 ,'2019-07-25');เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า PopulateTableDemo(Name,Amount,ArrivalDateTime) ('Larry',1050,'2015-10-28');Query ตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+-------+---------+---------------------------+| รหัส | ชื่อ | จำนวน | มาถึงวันที่เวลา |+----+-------+--------+---------------------------+| 1 | จอห์น | 456 | 2018-02-04 00:00:00 || 2 | แครอล | 1000 | 2019-10-21 00:00:00 || 3 | แซม | 970 | 2019-07-25 00:00:00 || 4 | แลร์รี่ | 1050 | 2015-10-28 00:00:00 |+----+-------+----------------------+---------------- -----+4 แถวในชุด (0.00 วินาที)

ตอนนี้คุณสามารถสร้างตารางที่สองและเติมค่าจากตารางด้านบน แบบสอบถามเพื่อสร้างตารางที่สองมีดังนี้:

mysql> สร้างตาราง PopulateQueryFromAnotherTable -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> UserName varchar(20), -> Salary int, -> DepartureDateTime datetime, -> PRIMARY KEY(Id) -> );Query OK , 0 แถวได้รับผลกระทบ (1.30 วินาที)

นี่คือแบบสอบถามเพื่อเติมค่าจากตารางแรกซึ่งเป็น PopulateTableDemo ถึง PopulateQueryFromAnotherTable:

mysql> แทรก PopulateQueryFromAnotherTable(UserName,Salary,DepartureDateTime) -> เลือก Name,Amount,ArrivalDateTime จาก PopulateTableDemo;Query OK, 4 แถวได้รับผลกระทบ (0.15 วินาที)Records:4 Duplicates:0 Warnings:0

ตอนนี้ตรวจสอบระเบียนตารางที่สองโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+----------+---------+--------------------- +| รหัส | ชื่อผู้ใช้ | เงินเดือน | วันที่ออกเดินทางเวลา |+----+----------+-------+---------------------------+ | 1 | จอห์น | 456 | 2018-02-04 00:00:00 || 2 | แครอล | 1000 | 2019-10-21 00:00:00 || 3 | แซม | 970 | 2019-07-25 00:00:00 || 4 | แลร์รี่ | 1050 | 2015-10-28 00:00:00 |+----+----------+--------+------------- --------+4 แถวในชุด (0.00 วินาที)