update set 多个字段更新的条件在另外一个表里

MySQL 从一张表update字段到另外一张表中
转载 &更新时间:日 11:46:48 & 投稿:hebedich
使用MySQL 4.0版或更高更新您可以通过加入两个或多个表一起一表;通过加入两个表连同您可以更新一个表的记录在相关领域的总部设在另一个表。
先来几个简单的示例
Solution 1:& 1列
update student s, city c
set s.city_name = c.name
where s.city_code = c.
Solution 2:& 多个列
update a, b
set a.title=b.title, a.name=b.name
where a.id=b.id
Solution 3: 子查询
update student s set city_name = (select name from city where code = s.city_code);
我们再来看几个负责写的
例如: 把表 tk_zyt_scenery_order的 字段更新到 t_advs_order中去, 一般可能会这样写:
UPDATE t_advs_order SET
attribute1=(SELECT o.order_state FROM tk_zyt_scenery_order o WHERE o.order_id=`on`),
attribute2=(SELECT o.order_state FROM tk_zyt_scenery_order o WHERE o.order_id=`on`)
WHERE EXISTS (SELECT o.order_state FROM tk_zyt_scenery_order o WHERE o.order_id=`on`);
这样效率比较低下, 优化写法:
UPDATE t_advs_order a INNER JOIN tk_zyt_scenery_order s ON s.order_id=a.`on` SET
a.attribute1=s.order_id,
a.attribute2=s.order_
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具oracle 如何通过一个表 更新另外一个表 update set……
[问题点数:40分,结帖人default7]
本版专家分:0
结帖率 93.85%
CSDN今日推荐
本版专家分:21589
2014年7月 Oracle大版内专家分月排行榜第一2014年5月 Oracle大版内专家分月排行榜第一2014年1月 Oracle大版内专家分月排行榜第一2013年12月 Oracle大版内专家分月排行榜第一
2014年10月 Oracle大版内专家分月排行榜第二2014年9月 Oracle大版内专家分月排行榜第二2014年6月 Oracle大版内专家分月排行榜第二2014年4月 Oracle大版内专家分月排行榜第二2014年3月 Oracle大版内专家分月排行榜第二2014年2月 Oracle大版内专家分月排行榜第二2013年11月 Oracle大版内专家分月排行榜第二
2014年11月 Oracle大版内专家分月排行榜第三2014年8月 Oracle大版内专家分月排行榜第三
本版专家分:0
结帖率 93.85%
本版专家分:21589
2014年7月 Oracle大版内专家分月排行榜第一2014年5月 Oracle大版内专家分月排行榜第一2014年1月 Oracle大版内专家分月排行榜第一2013年12月 Oracle大版内专家分月排行榜第一
2014年10月 Oracle大版内专家分月排行榜第二2014年9月 Oracle大版内专家分月排行榜第二2014年6月 Oracle大版内专家分月排行榜第二2014年4月 Oracle大版内专家分月排行榜第二2014年3月 Oracle大版内专家分月排行榜第二2014年2月 Oracle大版内专家分月排行榜第二2013年11月 Oracle大版内专家分月排行榜第二
2014年11月 Oracle大版内专家分月排行榜第三2014年8月 Oracle大版内专家分月排行榜第三
本版专家分:4103
匿名用户不能发表回复!|
CSDN今日推荐SQL Update语句,更新表中的符合要求的多条记录,更新的值是从另一个表中调用的
[问题点数:20分,结帖人godmouser]
本版专家分:5
结帖率 97.06%
CSDN今日推荐
本版专家分:68962
2007年11月 总版技术专家分月排行榜第一
2008年11月 MS-SQL Server大版内专家分月排行榜第三2008年10月 MS-SQL Server大版内专家分月排行榜第三2006年7月 MS-SQL Server大版内专家分月排行榜第三
本版专家分:5
结帖率 97.06%
本版专家分:5
结帖率 97.06%
本版专家分:5
结帖率 97.06%
匿名用户不能发表回复!|
CSDN今日推荐在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
UPDATE sites left join comments on comments.siteurl=sites.siteurl SET commentcount = count(comments.siteurl)
报错:#1111 - Invalid use of group function
sites是网站表comments表是评论一个网站对应多个评论现在想把评论的数量统计出来直接更新到sites
找到个方法了:
UPDATE sites A
INNER JOIN (SELECT *, COUNT(*) idcount FROM comments GROUP BY siteurl) as B
ON B.siteurl = A.siteurl
SET A.commentcount = B.idcount
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
为何要将count写入site表 那岂不是每次comment表数据更新了你都要那count重新写入site?这样不麻烦吗?如果你只是想统计每个site的评论数。每次查询的时候像你之前那样链表就行了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
count是聚合函数,直接这样写是不行的。你可以先把所有的数量查出来,然后直接在update的时候set commentcount=总数
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。for ACCESS 数据库:
update a, b set a.name=b.name1 where a.id=b.id
for SQL Server 数据库:
"update a set a.name=b.name1 from a,b where a.id=b.id"
以下在SQL Server中验证可行:&
update&& a&& set&& a.status=b.status&& & from&& table1&& a,table2&& b&& & where&& a.id1=b.id1&&
update a inner join b on a.a1=b.b1 set a.a2=b.b2& 条件
update&& table1&& set&& a.status&& =&& b.status&& & from&& table1&& a&& inner&& join&& table2&& b&&&& & on&& a.idl&& =&& b.idl
阅读(...) 评论()}

我要回帖

更多关于 update set 条件语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信