如何将一个表中某字段所有值插入到另一个表中

时间:2020-12-29 17:16:27
表A中有字段姓名,表B中也有字段姓名,如何执行SQL语句使A表中的所有姓名都插入到B表中?

10 个解决方案

#1


该回复于2012-04-19 10:03:00被版主删除

#2


我记得好像是insert into B(姓名) select 姓名 from A

但是这样只能更新姓名一列,我想更新其他列的话语句该怎么写?

#3


insert b (f1,f2,f3) select f1,f2,f3 from a
f1,f2,f3代表你表中的字段名. 需要个数相同,且对应字段类型相同(或可进行隐式转换)

#4


但是如果B表中的其他需要更新的字段在A表中并不存在,怎么办?
例如:我需要更新B表中(f1,f2,f3),其中f1在A表中存在,而f2,f3在A表中并不存在

#5


你是要更新b表记录的值,还是要从a中往b中加记录?

#6


从A中往B中加记录

#7


有没有告诉一下,在线等...

#8


那要看你b中其它字段写什么值了.
如果数据表设置有默认值,那么直接
insert b(f1) select f1 from a
就可以了,其它字段会用默认值填充.

如果你不需要其它值,字段又允许null的话,那么直接写null
insert b(f1,f2,f3) select f1,null,null from a

如果你不想写null,要手工给f2,f3两字段写其它值,那么写常量就可以了

insert b(f1,f2,f3) select f1,0,0 from a
这里,我设你的f2,f3为int型或decimal或numeric,money或是char,varchar类型,或datetime.

#9


问题的关键就在与字段f3不允许为空,怎么办?

#10


不允许为空,那你想写什么就写什么了.

#1


该回复于2012-04-19 10:03:00被版主删除

#2


我记得好像是insert into B(姓名) select 姓名 from A

但是这样只能更新姓名一列,我想更新其他列的话语句该怎么写?

#3


insert b (f1,f2,f3) select f1,f2,f3 from a
f1,f2,f3代表你表中的字段名. 需要个数相同,且对应字段类型相同(或可进行隐式转换)

#4


但是如果B表中的其他需要更新的字段在A表中并不存在,怎么办?
例如:我需要更新B表中(f1,f2,f3),其中f1在A表中存在,而f2,f3在A表中并不存在

#5


你是要更新b表记录的值,还是要从a中往b中加记录?

#6


从A中往B中加记录

#7


有没有告诉一下,在线等...

#8


那要看你b中其它字段写什么值了.
如果数据表设置有默认值,那么直接
insert b(f1) select f1 from a
就可以了,其它字段会用默认值填充.

如果你不需要其它值,字段又允许null的话,那么直接写null
insert b(f1,f2,f3) select f1,null,null from a

如果你不想写null,要手工给f2,f3两字段写其它值,那么写常量就可以了

insert b(f1,f2,f3) select f1,0,0 from a
这里,我设你的f2,f3为int型或decimal或numeric,money或是char,varchar类型,或datetime.

#9


问题的关键就在与字段f3不允许为空,怎么办?

#10


不允许为空,那你想写什么就写什么了.