oracle数据库update语句的疑问
我在表A中的数据如下namecou1cou2cou3cou4na11nullnullnullna22nullnullnull现在我需要从表B中想表A中更新数据,使用sel...
我在表A中的数据如下
name cou1 cou2 cou3 cou4
na1 1 null null null
na2 2 null null null
现在我需要从表B中想表A中更新数据,使用select语句从B中返回的结果集为
B_name B_cou1
na1 2
na2 3
我怎么才能使这个能够得到正确的添加
我原来的语句是
update A set cou2=(select B_cou1 from B where(条件1)) where name=(select B_name from B where(条件1))
报错 返回值不止一行。。求解~ 应该怎么写SQL 才能使得B中数据和正确更新到B中数据 展开
name cou1 cou2 cou3 cou4
na1 1 null null null
na2 2 null null null
现在我需要从表B中想表A中更新数据,使用select语句从B中返回的结果集为
B_name B_cou1
na1 2
na2 3
我怎么才能使这个能够得到正确的添加
我原来的语句是
update A set cou2=(select B_cou1 from B where(条件1)) where name=(select B_name from B where(条件1))
报错 返回值不止一行。。求解~ 应该怎么写SQL 才能使得B中数据和正确更新到B中数据 展开
4个回答
展开全部
你的语句太混乱了,按照你的意思你需要明确几点。
1.使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
2.找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的:
update A set cou2 = (select B_cou1 from B where B.B_name = A.name) where name in (select B_name from B where B.B_name = A.name)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
1.使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
2.找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的:
update A set cou2 = (select B_cou1 from B where B.B_name = A.name) where name in (select B_name from B where B.B_name = A.name)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cou2=(select B_cou1 from B where(条件1)) where name=(select B_name from B where(条件1))
= select B_cou1 from B where(条件1) 这个子查询只能有一条记录
可以改成
update A a set cou2= b.b_cou1
where exists
(select * from B b where b_name = a.name and (条件1) )
= select B_cou1 from B where(条件1) 这个子查询只能有一条记录
可以改成
update A a set cou2= b.b_cou1
where exists
(select * from B b where b_name = a.name and (条件1) )
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update A set cou2=(select b_cou1 from B where (条件1) and A.name=B.B_NAME)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update A set cou2=(select b_cou1 from B where A.name=B.B_NAME)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询