mysql join指定字段_MySQL中UPDATE某个字段通过LEFT JOIN

最近维护一个老项目,因为之前的表设计是满足之前的项目的。现在项目有改动,需要去做更新。项目逻辑就不一一介绍。现在剥离出其中一个小项。也就是在用户表中附加一个字段,得到这个用户的地址id。之前是地址表中存有用户ID,每次都需要去连表LEFT JOIN,而且有些用户是没有地址的,所以需要这么去判断.

//查询出没有用户地址的用户列表

SELECT * FROM user_list AS A LEFT user_address AS B ON (A.id=B.user_id AND ISNULL(B.id));

数据量大的时候联表查询有性能消耗,尤其是要联表多个的时候。

现在需要在用户表里新增一个字段address_id默认值为0.新增完成后,就需要去更新这个字段。起初笨笨的dodo想写个循环去更新,但是一看数据表几万条,这样太费时费力。

于是可以参考下面的sql语句,一句搞定且高效。

// 更新A表里面的字段,值来自于B表

UPDATE user_list AS A

LEFT JOIN user_address AS B ON A.id = B.user_id

SET A.address_id = IFNULL(B.id,0), A.address_status=IFNULL(B.status,0);

最后很多的方式都可以直接用MySQL来处理。这样很高效也提高了IO。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值