博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql联合其他表做更新
阅读量:6961 次
发布时间:2019-06-27

本文共 993 字,大约阅读时间需要 3 分钟。

在sql server中,我们可是使用以下update语句对表进行更新:

update a set a.xx= (select yy from b) where a.id = b.id ;

但是在mysql中,不能直接使用set select的结果,必须使用inner join

UPDATE tt_vmap_connect_doc d INNER JOIN (SELECT if(ct.vehicle_site_distance IS not NULL,            if(ct.vehicle_site_distance > 1000,2,1),            if(LOCATE('xx',rd.vehicle_number) > 0,1,                if(LOCATE('yyyy',rd.fault_names) > 0,1,2)            )) as gps,ct.id FROM tt_vmap_connect_doc ctINNER JOIN tt_vmap_order_doc od ON ct.order_id = od.idINNER JOIN tt_vmap_repair_doc rd ON rd.id = od.repair_id) c ON c.id = d.id SET d.gps_coincide = c.gps,d.reference_value = 1000;

 

另外mysql更新多个字段也不能用括号确定多个字段,而必须一个一个set

 

update a set(a.province,a.city)=(select province,city from b where b.mobile=a.mobile)  --不可用于mysqlupdate a set a.province=b.province,a.city=b.city from a inner join b on a.mobile=b.mobile.或者update a set a.province=b.province,a.city=b.city from a,b where a.mobile=b.mobile.

 

转载于:https://www.cnblogs.com/jay763190097/p/10382762.html

你可能感兴趣的文章
kettle demo5 遍历目录下多文件,根据文件类型走不同方式导入到数据库
查看>>
我的友情链接
查看>>
win2008 防火墙 ipsec策略 路由和远程访问nat映射
查看>>
第一讲概述
查看>>
一场版本升级引发的性能血案 - 王者归来
查看>>
httpd 服务器的三大引擎 prefork、worker、event分析
查看>>
schedule和scheduleAtFixedRate
查看>>
golang之runtime.SetFinalizer
查看>>
tomcat 内存溢出
查看>>
操作用户 简介
查看>>
JDK工具(一)–Java编译器javac
查看>>
Cassandra数据模型设计
查看>>
JDBC Java SQL Server 连接
查看>>
Maven部署Struts2环境详解
查看>>
日常记录-js篇
查看>>
使用 Java Native Interface 的最佳实践
查看>>
关于 Perl 与 Python 的起源和特点
查看>>
taobao npm registry
查看>>
jenkins------结合maven将svn项目自动部署到tomcat下
查看>>
我的友情链接
查看>>