网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 服务器与数据库 > MySQL
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Reply
 
Thread Tools Display Modes
  #1   IP: 114.238.67.146
Old 2012-03-13, 12:13 AM
topvip topvip is offline
超级版主
 
Join Date: 2006-01-04
Posts: 1206
topvip 正向着好的方向发展
Default MySQL 数据库怎样把一个表不同字段的数据插入到另一个表

web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码。下面我以mysql数据库为例分情况一一说明:

两张表:insertTest和insertTest2,前者中有测试数据

create table insertTest(id int(4),name varchar(12));
insert into insertTest values(100,‘liudehua’);
insert into insertTest values(101,‘zhourunfa’);
insert into insertTest values(102,‘zhouhuajian’);


1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO 目标表 SELECT * FROM 来源表;

insert into insertTest select * from insertTest2;


2.如果只希望导入指定字段,可以用这种方法:

INSERT INTO 目标表 (字段1, 字段2, …) SELECT 字段1, 字段2, … FROM 来源表;

注意字段的顺序必须一致。

insert into insertTest2(id) select id from insertTest2;


3.如果您需要只导入目标表中不存在的记录,可以使用这种方法:

INSERT INTO 目标表

(字段1, 字段2, …)

SELECT 字段1, 字段2, …

FROM 来源表

WHERE not exists (select * from 目标表

where 目标表.比较字段 = 来源表.比较字段);

1>.插入多条记录:

insert into insertTest2
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);


2>.插入一条记录:

insert into insertTest
(id, name)
SELECT 100, ‘liudehua’
FROM dual
WHERE not exists (select * from insertTest
where insertTest.id = 100);

使用 dual 作表名,select 语句后面直接跟上要插入的字段的值。
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
关于PHP中操作MySQL数据库的一些要注意的问题 smiling 代码交流 0 2006-12-15 07:22 PM
如何导入导出MySQL数据库 topvip 建站交流 0 2006-10-10 07:43 AM
使用XAMPP轻松建站(Linux版) smiling 服务器环境搭建 0 2006-05-13 04:01 AM
mysql安装与简单使用 sunshine 服务器环境搭建 0 2006-01-11 07:29 PM
winxp下安装全新的apache,php(5.0),mysql(5.0)... topvip 服务器环境搭建 0 2006-01-08 10:28 PM

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 10:51 PM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.