引用另一个表更新同一个表

bhmjp9jg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(296)

我试图用tableb中的值之和来更新我的tablea,但是要根据tablea中的日期进行分组。
这是我能买到的最近的,但没有雪茄:

update tableA set C1Count = (
    select val from (
        select  a.prodind, sum(b.val) as val from tableA a , tableB b
        where b.date BETWEEN a.ActStartC1 and a.ActFinC1
        group by a.prodind) tmp_tbl
    )
    where tableA.prodind = tmp_table.prodind
)
2lpgd968

2lpgd9681#

这是mysql中从一个表更新到另一个表的一个例子

UPDATE tableB
    INNER JOIN tableA ON tableB.name = tableA.name
    SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value)
    WHERE tableA.name = 'Joe'

对于你的情况,我认为下面应该有用

update tableA a
inner join (
        select  a.prodind, sum(b.val) as val from tableA a , tableB b
        where b.date BETWEEN a.ActStartC1 and a.ActFinC1
        group by a.prodind
        ) tmp_tbl
        on a.prodind=tmp_table.prodind
set a.C1Count=val

但是我认为你应该明确地提到tablea和tableb之间的join

相关问题