sql多表连接update,通过其他的表的数据update某张表的⽅法
这是我之前写过的⼀个sql语句
update tbl_safety_target t
sql left join 多表连接set zj = t
from
(
SELECT t.id ,t.unicode , t
FROM tbl_safety_target t
LEFT JOIN"ZHJG_HK_JD" zhj on t.unicode = zhj."UNISCID"
left JOIN t_xzjd on zhj."XZJD"like'%'||de||'%'
where zhj."XZJD"is not null
)
tbs
where tbs.id = t.id
这个sql因为是实际业务中的,看起来有点杂乱
这⾥简单的精简下
update需要被修改的表as t1
set需要被修改的列=temp.提供数据的列
from
(
这⾥是通过select连接查询得到的临时数据表
)tmp
where t1.id = t.id
最后⼀个where是将查询到的数据表和需要被修改的表关联 来赋值
但是我感觉实际上我这⾥的性能还是存在问题,只是提供了⼀个可⾏性 ,最后⼀步的where条件的内连接 似乎是多余的 理论上还是可以优化的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。