从B表插入A表某些字段,

时间:2023-01-26 17:12:27
A、B表的结构不同

Insert into a(xh) select id from b where xh in (select xh from b)

想实现 把b表里的id字段插入到a表的xh字段,当b表的序号=a表的序号时



5 个解决方案

#1




update a inner join b on  a.xh=b.xh set a.id=b.xh


有点看不懂你的 "把b表里的id字段插入到a表的xh字段,当b表的序号=a表的序号时"
既然 b表的序号=a表的序号 ,然后再把 b.id 放到 a.xh 中?


建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。

#2


Insert into a(xh) 
select id from b inner join a on b.xh=a.id

#3


我的表结构是这样子的

b表
id AotoInt 
xh integer

a表
id aotoint
xh integer
......

当a表的xh=b表的xh时, 用b表的id替换a表的xh 

比如说  b表
id  xh
1   5
2   8
3   100
4   102 
5   201
.....

a 表

id   xh     ......
1     5
100   8
123   100
11    102
123   201
....        .....

执行后, a 表变成

id   xh  ......
1     1
100   2
123   3
11    4
123   5
...      ....
....

#4


我说的不太清楚,不过你们的方法可以,谢谢了

#5




update a inner join b on a.xh=b.xh set a.id=b.xh

update a inner join b on a.xh=b.xh set a.id=a.xh

或者

update a set a.id=a.xh where exists (select id from b where xh=a.xh)

update a set a.id=a.xh where xh in (select xh from b)

#1




update a inner join b on  a.xh=b.xh set a.id=b.xh


有点看不懂你的 "把b表里的id字段插入到a表的xh字段,当b表的序号=a表的序号时"
既然 b表的序号=a表的序号 ,然后再把 b.id 放到 a.xh 中?


建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。

#2


Insert into a(xh) 
select id from b inner join a on b.xh=a.id

#3


我的表结构是这样子的

b表
id AotoInt 
xh integer

a表
id aotoint
xh integer
......

当a表的xh=b表的xh时, 用b表的id替换a表的xh 

比如说  b表
id  xh
1   5
2   8
3   100
4   102 
5   201
.....

a 表

id   xh     ......
1     5
100   8
123   100
11    102
123   201
....        .....

执行后, a 表变成

id   xh  ......
1     1
100   2
123   3
11    4
123   5
...      ....
....

#4


我说的不太清楚,不过你们的方法可以,谢谢了

#5




update a inner join b on a.xh=b.xh set a.id=b.xh

update a inner join b on a.xh=b.xh set a.id=a.xh

或者

update a set a.id=a.xh where exists (select id from b where xh=a.xh)

update a set a.id=a.xh where xh in (select xh from b)