将一个表中某一列的数据填入到另一个表中

铂金小羊 发布于 2013/02/28 14:39
阅读 544
收藏 1

我现在有两个表:user, pwd


现在我想将pwd表中的passwd填入到user表中的passwd列(根据userid),SQL语句应该怎么写啊?

加载中
0
jsyang888
jsyang888

UPDATE user,pwd

SET user.pasword=pwd.passwd

WHERE user.id=pwd.userid

--------

盲写,应该没错,自己测一下

jsyang888
jsyang888
回复 @sxgkwei : 呵呵 我偷懒 没用 标准 SQL, inner join是最标准最优化的,偶后面说了~
sxgkwei
sxgkwei
目测通不过。。。。哦哦,mysql吖,那通的过。
0
名字不能超过十个字
名字不能超过十个字
update user as u set password = (select passwd from pwd where userid=u.id)
0
jsyang888
jsyang888

可能我的快一点。

数据大的话,楼上的子query,要改为(inner )join 方式,是最优化的

名字不能超过十个字
名字不能超过十个字
呵呵.第一反应就是这个,没多想
0
jsyang888
jsyang888
很小的表,profile是测不出差距滴
0
jsyang888
jsyang888
嗯嗯,lz 的问题,不用管这啦。 不过上亿级别,这么一小点,可是几天和几小时的差距了,呵呵
名字不能超过十个字
名字不能超过十个字
那是,sql优化也是一们学问了,经验不够,呵呵
0
铂金小羊
铂金小羊

引用来自“名字不能超过十个字”的答案

update user as u set password = (select passwd from pwd where userid=u.id)

这一句执行会报错……


错误码: 1242

Subquery returns more than 1 row


Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000
pantrick
pantrick
你的userid 不是唯一的?
0
cookqq
cookqq
UPDATE `user` U 
INNER JOIN `pwd` P
ON P.userid=U.id 
SET U.password = P.passwd; 
返回顶部
顶部