晕,我想了很久还是没想出来,是不是用个什么关键字啊?但用select A into B.....又不对
从你的提问里搞不起清楚到底需要insert还是update --如果是insert insert into B表(ID,Name) select ID,Name from A表--如果是update update B表 set Name=(select Name from A表 where id=B表.id)
你不能select into。 只能用 insert into。
insert into B表(ID,Name) select ID,Name from A表 m where not exists(select 1 from B表 s where m.id=s.id)
UPDATE B表 SET Name= from A表 A INNER JOIN B表 B on A.ID=B.ID insert into B表(ID,Name) select ID,Name from A表 A LEFT JOIN B表 B on A.ID=B.ID WHERE B.ID IS NULLUPDATE 和 INSERT 语句顺序最好不要调换,如果你理解这个了,对你好处;
这样应该可以 insert into B表(id,Name) select (select max(id)from b表)+id, Name from A表
--如果是insert
insert into B表(ID,Name)
select ID,Name from A表--如果是update
update B表 set Name=(select Name from A表 where id=B表.id)
只能用 insert into。
select ID,Name from A表 m
where not exists(select 1 from B表 s where m.id=s.id)
唯一类型,int类型,自增类型,还有他们有没有默认值,这些都要考虑。
你的意思肯定是想 将b表的数据全部插到a表去。但是因为有相同id,所以报错。
select ID,Name from A表 m
where not exists(select 1 from B表 s where m.id=s.id)
上面的代码就不会报错了。
select ID,Name from A表 A LEFT JOIN B表 B on A.ID=B.ID
WHERE B.ID IS NULLUPDATE 和 INSERT 语句顺序最好不要调换,如果你理解这个了,对你好处;
--导入时候只导入A表中的NAME字段的值就可以了。
--select A.name,B.Fields from A left join B on A.name=b.name
--where B.name=null;