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
    )
  • 相关阅读:
    Go反射原理
    并发控制--context篇
    Go并发控制--WaitGroup篇
    Go依赖管理--module
    正睿培训 8.4 学习笔记
    bitset
    7.18 学习笔记
    7.17 学习笔记
    P6835 [Cnoi2020]线形生物
    UVA11300 Spreading the Wealth 思维题
  • 原文地址:https://www.cnblogs.com/alsf/p/7827362.html
Copyright © 2011-2022 走看看