17,086
社区成员
发帖
与我相关
我的任务
分享
--还有另外一个问题 就是,如果更新表时涉及到常量,也需要在视图中体现
--复杂的查询语句==》视图
select a.*,1 as static_int,'aa' as static_var from a
left join b on a.id=b.id
--前段时间有做过类似的功能
--视图,想法来源:select * from a for update
update (视图) a
set a.name=a.name_new
....
--说是视图,其实是复杂的关联语句
select a.* from a
left join b on a.id=b.id
...
--最后还有一点要注意,就是更新只能更新一张表的数据
--就是视图里面只能是表a 或者表b的,这个是update本身的限制
--希望对楼主有用...
update work_cld_define a
set a.workcld_typeid = 'aaaaaaaa'
where a.workcld_typeid =
(select b.workcld_typeid
from work_cld_type b, work_cld_typetime c
WHERE b.workcld_typeid = c.workcld_typeid
AND c.workcld_timeid = 'cccccccc')
and a.workclddefineid = 'bbbbbbb'
update work_cld_define a
set a.workcld_typeid = 'aaaaaaaa' --from work_cld_define a, work_cld_type b, work_cld_typetime c
where a.workcld_typeid = (select b.workcld_typeid from work_cld_type b)
and b.workcld_typeid = (select c.workcld_typeid from work_cld_typetime c where c.workcld_timeid = 'cccccccc')
and a.workclddefineid = 'bbbbbbb'
-- and c.workcld_timeid = 'cccccccc'