1. 程式人生 > >MySql將查詢結果插入到另外一張表

MySql將查詢結果插入到另外一張表

標準SQL中INSERT語句允許將SELECT語句查詢出來的資料插入到另一個表中,即可快速地從一個或多個表中向一個表中插入多個行。這樣,可以方便不同表之間進行資料交換。

基本的語法格式如下:

INSERT INTO 表名1(欄位列表1) SELECT 欄位列表2 FROM 表名2 WHERE 查詢條件;

表名1:表示記錄插入到哪個表中。
欄位列表1:表示為哪些欄位賦值。
欄位列表2:表示從表中查詢出哪些欄位的資料。
表名2:表示記錄是從哪個表中查詢出來的。
條件表示式:表示設定SELECT語句的查詢條件。
將“表名2”中查詢出來的記錄插入到“表名1”中以後,“表名2”中仍然儲存著原來的記錄。
提示:

1 . 使用這種方法時,必須保證“欄位列表1”和“欄位列表2”中的欄位個數是一樣的,同時,也必須保證每個對應的欄位的資料型別是一樣的。如果資料型別不一樣,資料庫系統會報錯。然後,阻止INSERT語句向下執行。

2 . 這個例子中使用的stu資料表和student資料表的定義相同,事實上,MySQL不關心SELECT返回的列名,它根據列的位置進行插入,SELECT的第1列對應待插入表的第1列,第2列對應待插入表的第2列,等等。即使不同結果的表之間也可以方便的轉移資料。