sql 更新让值等于从另一个查询出来的值

UPDATE tblbwzc SET userid = (select id from t_myuser where username=601005) WHERE id = 8
应改怎么写才对,让tblbwzc 表中id = 8 的userid 等于从t_myuser表中查出的username=601005 的id 值,两张表没有关联,高手

第1个回答  推荐于2017-12-16
两张表没有关联字段的话,建议还是老老实实的写!

declare @id int
select @id=id from t_myuser where username=601005
UPDATE tblbwzc SET userid = @id WHERE id = 8本回答被提问者采纳
第2个回答  2012-05-21
UPDATE tblbwzc SET userid = (select id from t_myuser where username=601005) WHERE id = 8;
这个写法要确保select id from t_myuser where username=601005查询的结果是一条数据,不然会出现错误

另一张表和tblbwzc 表有关联字段吗?追问

没有

第3个回答  2012-05-21
update table1 a set a.col1=(select col2 from table2 where col3=a.col3)
第4个回答  2012-05-21
select id from t_myuser where username=601005
你这个语句查出来的值是多少有几个,什么类型的。你的tblbwzc中的userid是什么类型的?
第5个回答  2012-05-21
UPDATE tblbwzc SET userid = (select distinct id from t_myuser where username=601005) WHERE id = 8追问

不对啊,提示还是一样
[Err] 1292 - Truncated incorrect DOUBLE value: 'b'

追答

userid 和id 是不是不是同一种数据类型啊?若不是转一下就OK了

相似回答