mysql使用join做update操纵与使用join做查询时出现重复记录的问题

    在实际处理数据过程中,有一些数据可能会从别的地方导入过来,两个表有关联,但是一个表中的某一列缺失,如果要补全,可以利用另一个表来做填充。这里就是今天的第一个问题,使用update的时候,join另一个表。

    如下所示,xx_a中的数据是完整的,xx_b中的name是缺失的,假定xx_b中的user_id正好与xx_a中的id对应,这个时候,我们可以直接update修改xx_b,让xx_b.name = xx_a.name,但是需要给出关联条件与连接语句。

    

这里update语句的编写和查询语句有些类似,但是又有一些区别。update 的语法是

update xx_b set name = ${name} where id = ${id}

但是这里,我们需要关联xx_a,语句如下:

UPDATE xx_b b 
LEFT JOIN xx_a a 
ON b.user_id = a.id
SET b.name = a.name

SQL运行截图如下:

 

    修改之后,发现两边的数据都一样了。

    这种修改,背后隐藏的逻辑就是xx_a 、xx_b两边的数据是一一对应的,一个id对应另一个表,只有一个记录。但是,如果是一对多的问题,那么在查询的时候可能会出现很怪异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值