zoukankan      html  css  js  c++  java
  • oracle update left join查询

    对于有的更新语句,要更新的表可能条件不够,需要用到left join关联其他表,

    但是不能直接关联,否则报错:错误如下:

    update  imim_gireqbillitems gi 
    left join imim_gireqbills g on g.guid=gi.guid
    set gi.quantity=
    (
        select sum(gi2.quantity)
        from imim_gireqbillitems gi2
        left join imim_gireqbills g2 on g2.guid=gi2.guid
        where g2.ismerge='0' and g2.mergeid=g.mergeid
    )
    where g.ismerge='1' and exists
    (
        select 1
        from imim_gireqbillitems gi2
        left join imim_gireqbills g2 on g2.guid=gi2.guid
        where g2.ismerge='0' and g2.mergeid=g.mergeid
    )

    正确实例:

    update 
    (
      select * from imim_gireqbillitems gi 
      left join imim_gireqbills g on g.guid=gi.guid
      where g.ismerge='1'
    ) T
    set T.quantity=
    (
        select sum(gi2.quantity)
        from imim_gireqbillitems gi2
        left join imim_gireqbills g2 on g2.guid=gi2.guid
        where g2.ismerge='0' and g2.mergeid=T.mergeid
    )
    where exists
    (
        select 1
        from imim_gireqbillitems gi2
        left join imim_gireqbills g2 on g2.guid=gi2.guid
        where g2.ismerge='0' and g2.mergeid=T.mergeid
    )
  • 相关阅读:
    web页面中四种常见必测控件
    python03
    python基础2
    python基础
    如何定位测试用例的作用?
    需求测试的注意事项有哪些?
    性能测试的流程?
    简述bug的生命周期?
    Python字符串
    Python基础语法
  • 原文地址:https://www.cnblogs.com/alsf/p/7827362.html
Copyright © 2011-2022 走看看