怎样在update里使用select语句 sql2005

初学者。要update一个表的某一列数据时要引用到数据库中另一个表里的数据,这时候可以在update语句下使用select语句吗?试了几下都没有成功,望解答。
要求是:根据表orderdetail中和表Book中的销量,价格,折扣信息修改order表中某一个项目的总价。

这三个表没有一列内容是关联的。

我做的
update [order]
set totalprice=amount(select amount from orderdetail)
*price(select price from book)
*discount(select discount from book)
where ordercode='08110801'

似乎想的太天真了

比如
学生表

学号 班级
1 一班
2 一班
3 二班

成绩表
学号 成绩
1 80
2 70
3 76

现在要给一班学生增加5分

update 成绩表 set 成绩=成绩+5 where 学号 in (select 学号 from 学生表 where 班级='一班')

你还是把你详细需求说了吧,你这么问谁都答不了你

---------------补充------------
没关联改不了,除非要关联的两个表,每个表里只有一行数据
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-11
update 表1 set 列A = 表2.列A
from 表1 inner join 表2 on 表1.ID = 表2.ID
where 条件或者没有
第2个回答  2013-10-11
update tableA set tableA.record += 1 where tableA.id exists (select id from tableB where tableA.id = tableB.id);

怎样在update里使用select语句 sql2005
update 成绩表 set 成绩=成绩+5 where 学号 in (select 学号 from 学生表 where 班级='一班')你还是把你详细需求说了吧,你这么问谁都答不了你 ---补充--- 没关联改不了,除非要关联的两个表,每个表里只有一行数据

如何使用update语句直接更新通过select出来的结果集中的某个字段?(同...
update barcode set colorid = 'B' where goodis between 100 and 110。然而,如果简单的where条件不能满足需求,就需要将查询结果指定一个新的表名。MySQL不支持在一个SQL语句中更新或删除同一表的select结果。正确的做法是使用子查询,语句如下:update barcode set colorid='B' where colorid in ...

SQL里SELECT和UPDATE语句的用法.
update Employee set Department='网络部'; 这句就是把Employee表中的Department字段全部更新为'网络部 update Employee set Department='网络部' where ID='karl'; 这句就是把Employee表中ID 为'karl'的Department字段更新为'网络部 select 用来查询 select *from table name where ......

SQL中 update嵌套select怎么使用?
UPDATE A SET 时间 = ( SELECT MAX(时间) FROM B WHERE A.ID = B.ID )

SQL里怎么用UPDATE更新大量SELECT数据?
最常用的update语法是:UPDATE <table_name> SET <column_name1> = <value>, SET <column_name2> = <value> 如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦 第一,要select出来放在临时变量上 第二,再将变量进行赋值。具体的语法如下:UPDATE <table_name...

面试官:select语句和update语句分别是怎么执行的?
UPDATE语句执行流程执行UPDATE语句时,同样经过连接器、分析器、优化器、执行器,但区别在于涉及redo log和binlog的操作。redo log: 先写日志,后更新内存和磁盘,提高效率。binlog: 记录原始SQL,用于数据恢复和复制。关键点在执行过程中,SELECT和UPDATE的主要区别在于对数据的访问和修改。同时,使用缓存、...

sql中怎样用select语句来update一个表
update 表1 set 修改字段=修改后内容 where 条件1 in(select 条件1关联值 from 表2 where 表1.关联字段=表2.关联字段)

SQL里怎么用UPDATE 更新大量SELECT 数据
update 表名 SET 字段=?where 值 in (select)

SQL里怎么用UPDATE 更新大量SELECT 数据
你可以创建一张表,然后用insert into。。。select 把查询结果插入到这个表, 然后这个表和要update的表 联表去update

SQL里怎么用UPDATE 更新大量SELECT 数据
1 beijing 1 北京 2 shanghai 2 上海 3 guangzhou 3 广州 把t1表的a字段,更新为对应的t2表的b字段,可以使用以下语法 update t1 set t1.a = (select t2.b from t2 where t1.id = t2.id)where exists (select 1 from t2 where t1.id = t2.id)

相似回答