更新表的一列数据

时间:2022-08-04 03:38:35
update tmp_list_record t set t.acpt_org_name = (select d.acpt_org_name from evt_iom_cust_reply_record_day t
                                                left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
                                                left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id )
                         where t.fgs = 3;
这个是我自己写的,但是运行不了,不知道怎么写求大神帮忙

select d.acpt_org_name from evt_iom_cust_reply_record_day t
                                                left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
                                                left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id ;
这个是可以查到值的
   更新表的一列数据
但是 怎么让这个值更新到 tmp_list_record 这个表中 ,且根据 ord_code = ord_no ,iom_ord_id = iom_ord_id 
select * from tmp_list_record;
更新表的一列数据

13 个解决方案

#1


顶一下下。。。

#2


你要更新的表tmp_list_record 和你查询的一堆表通过什么字段关联?

#3


你的查询出来是多行,是不能这么更新到单行中的。

update tmp_list_record t1 set t.acpt_org_name = (select d.acpt_org_name from evt_iom_cust_reply_record_day t
                                                left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
                                                left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id
where t1.ord_code = t. ord_code)
                         where t.fgs = 3;

#4


那要怎么更新进去,不可能一个个更新的,太多了

#5


你没有和tmp_list_record做关联啊怎么可能更新进去呢

#6


 1、更新表 tmp_list_record t 的别名和 查询表 evt_iom_cust_reply_record_day t 的别名不要一致,然后在查询语句中建立 更新表和查询表的关联;
2、更新表 tmp_list_record t  where条件中最好加入更新范围语句,不然会将 更新表中原有的数据更新为空;

#7


多行数据怎么能更新到单行里面呢

#8


更新表的一列数据tmp_list_record和evt_iom_cust_reply_record_day未关联,肯定会造成多行对单行错误,你先搞清楚两个表如何关联。

#9


比如表A和B,两个表关联通过A.id=B.aid,更新B的name到A的name
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE  A.ID = B.AID) --A和B的关系
       WHERE  EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID);   ---A和B能关联上的数据更新

#10


引用 9 楼 fgiser 的回复:
比如表A和B,两个表关联通过A.id=B.aid,更新B的name到A的name
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE  A.ID = B.AID) --A和B的关系
       WHERE  EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID);   ---A和B能关联上的数据更新


这个已经很直观了,楼主不妨看看。

#11


还要用第二个表和第三个表关联,然后就报错了

#12


更新表的一列数据
怎么解决

#13


引用 12 楼 qq_28548709 的回复:
更新表的一列数据
怎么解决

等号后面子查询返回了多个值,提示很明显了  

#1


顶一下下。。。

#2


你要更新的表tmp_list_record 和你查询的一堆表通过什么字段关联?

#3


你的查询出来是多行,是不能这么更新到单行中的。

update tmp_list_record t1 set t.acpt_org_name = (select d.acpt_org_name from evt_iom_cust_reply_record_day t
                                                left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
                                                left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id
where t1.ord_code = t. ord_code)
                         where t.fgs = 3;

#4


那要怎么更新进去,不可能一个个更新的,太多了

#5


你没有和tmp_list_record做关联啊怎么可能更新进去呢

#6


 1、更新表 tmp_list_record t 的别名和 查询表 evt_iom_cust_reply_record_day t 的别名不要一致,然后在查询语句中建立 更新表和查询表的关联;
2、更新表 tmp_list_record t  where条件中最好加入更新范围语句,不然会将 更新表中原有的数据更新为空;

#7


多行数据怎么能更新到单行里面呢

#8


更新表的一列数据tmp_list_record和evt_iom_cust_reply_record_day未关联,肯定会造成多行对单行错误,你先搞清楚两个表如何关联。

#9


比如表A和B,两个表关联通过A.id=B.aid,更新B的name到A的name
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE  A.ID = B.AID) --A和B的关系
       WHERE  EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID);   ---A和B能关联上的数据更新

#10


引用 9 楼 fgiser 的回复:
比如表A和B,两个表关联通过A.id=B.aid,更新B的name到A的name
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE  A.ID = B.AID) --A和B的关系
       WHERE  EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID);   ---A和B能关联上的数据更新


这个已经很直观了,楼主不妨看看。

#11


还要用第二个表和第三个表关联,然后就报错了

#12


更新表的一列数据
怎么解决

#13


引用 12 楼 qq_28548709 的回复:
更新表的一列数据
怎么解决

等号后面子查询返回了多个值,提示很明显了