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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 值,两张表没有关联,高手

参考技术A 两张表没有关联字段的话,建议还是老老实实的写!

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

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

没有

参考技术C update table1 a set a.col1=(select col2 from table2 where col3=a.col3) 参考技术D 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了

更新表字段,从另一个表中查询出来

UPDATE t 
SET t.Premium = (SELECT TOP 1 Max( t2.Premium )
                 FROM dbo.TableName t2
                 WHERE t2.SetId = 2012 AND t2.Id = t.ID)
FROM dbo.TableName t
WHERE t.SetId = 2013

以上是关于sql 更新让值等于从另一个查询出来的值的主要内容,如果未能解决你的问题,请参考以下文章

更新一个表的字段值等于另一个表的字段值的SQL语句

使用 MSSQL 中的 DYNAMIC SQL 从另一个表更新一个表中的值

更新表字段,从另一个表中查询出来

MySQL 更新一个表里的字段等于另一个表某字段的值

从另一个表更新一个表中的值

如何使用 SQL 查询从另一个表中更新作为下拉列表的字段