咱們常常須要將一個表的數據插入到另一個表,有時還須要指定導入字段,設置只須要導入目標表中不存在的記錄,雖然這些均可以在程序中拆分紅簡單sql來實現,可是用一個sql的話,會節省大量代碼。下面我以mysql數據庫爲例分狀況一一說明:mysql
1.若是2張表的字段一致,而且但願插入所有數據,能夠用這種方法:
INSERT INTO 目標表 SELECT * FROM 來源表;sql
insert into insertTest select * from insertTest2;
2.若是隻但願導入指定字段,能夠用這種方法:數據庫
INSERT INTO 目標表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 來源表;(這裏的話字段必須保持一致)
insert into insertTest2(id) select id from insertTest2;
3.若是您須要只導入目標表中不存在的記錄,能夠使用這種方法:.net
複製代碼
INSERT INTO 目標表
(字段1, 字段2, ...)
SELECT 字段1, 字段2, ...
FROM 來源表
WHERE not exists (select * from 目標表
where 目標表.比較字段 = 來源表.比較字段);
複製代碼
1>.插入多條記錄:code
複製代碼
insert into insertTest2
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);
複製代碼
2>.插入一條記錄:blog
複製代碼
insert into insertTest
(id, name)
SELECT 100, 'liudehua'
FROM dual
WHERE not exists (select * from insertTest
where insertTest.id = 100);
複製代碼get
SELECTcli
t.NAME, ( CASE t.sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END ) 性別
FROMselect
做者:rocling
來源:CSDN
原文:https://blog.csdn.net/rocling...
版權聲明:本文爲博主原創文章,轉載請附上博文連接!程序