这是我正在谈论的数据的示例:
tbl1 tbl2
==================================== ====================================
| id | id_name | purchased | count | | id | date | count |
==================================== ====================================
| 1 | id1 | true | 100 | | 1 | 2019-03-01 00:00:00 | 50 |
| 2 | id2 | false | 40 | | 1 | 2018-03-02 00:00:00 | 30 |
| 3 | id3 | false | 60 | | 1 | 2018-03-03 00:00:00 | 25 |
| 4 | id4 | false | 100 | ====================================
====================================
基本上,我试图获取 tbl1 中“count”的总和,但在“purchased”= true 的情况下,我想在特定日期之后用 tbl2 中“count”的总和更新该计数:“2018-03” -02'。
我尝试将左连接和 case whens 结合起来,但由于 tbl2 没有精确匹配的“id”值,因此我的查询仅输出 id = 1 的计数值。
这里有什么帮助吗?提前致谢!
编辑:抱歉,澄清一下这是 MySQL,我并不是在尝试更新实际的表。我只想提取 tbl1 的数据并在该数据输出中更新计数数据。
最佳答案
您可以尝试以下 -
update t tbl2
join select id,sum(`count`) as totalcnt from tbl1 where purchased=true group by id)t1
on t.id=t1.id
set t.`count`=totalcnt
where date>'2018-03-02'
关于mysql - 当两个表没有相同的键时合并数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55177374/