如何根据A表、B表中共同的字段,给B表新的字段中填入A表中的字段

问题场景

我们想把securityspace表(B表)中的Risk字段添加到总表(A表)

图片[1]-如何根据A表、B表中共同的字段,给B表新的字段中填入A表中的字段-FancyPig's blog

总表plugins(A表)这里一开始risk字段是没有值的(我们截图的是执行完代码有值的)

图片[2]-如何根据A表、B表中共同的字段,给B表新的字段中填入A表中的字段-FancyPig's blog

解决方法

我们发现securityspace(B表)和plugins(A表)中有共同的字段:securityspace(B表)中的ID字段和plugins(A表)中的oid字段,我们只需要下面一行代码就可以解决了

update plugins
set  risk = (select Risk from securityspace where securityspace.ID=plugins.oid)
图片[3]-如何根据A表、B表中共同的字段,给B表新的字段中填入A表中的字段-FancyPig's blog

类似场景

下面再写一个场景方便大家理解吧,我连表也列出来,给大家讲解

A表

usergenderhobby
fancypig打菠菜
pigpigpig写博客

B表

nameemailpassword
fancypigfancypig@foxmail.comMD5_1
pigpigpigfancypigsec@gmail.comMD5_2

A表是用户的一个兴趣表,B表是用户的一个账户信息

我们想把用户的资料都合并到B表,这时我们需要新建2个字段(字段可以一样,但是怕很多人看不懂后面的SQL代码,我这里故意写的字段与A表中的不同)

B表

nameemailpasswordsexfancyjob
fancypig fancypig@foxmail.com MD5_1
pigpigpig fancypigsec@gmail.com MD5_2

然后运行SQL语句,因为我们这里用户名是一致的,因此根据用户名来填充对于的字段就好了

update B表
set  sex = (select gender from A表 where A表.user=B表.name),
fancyjob = (select hobby from A表 where A表.user=B表.fancyjob)

然后数据就自动同步过来了,上面用户只显示了2个

通常情况下,数据量都不会很少,不然你也不会想着用SQL语句覆盖!

© 版权声明
THE END
喜欢就支持一下吧
点赞45赞赏 分享
评论 共2条

请登录后发表评论