繁体   English   中英

当两个表没有相同的键时如何合并它们?

[英]Combining data from 2 tables when they don't have same keys?

这是我正在谈论的数据的一个例子:

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'的总和,但是'purchase'= 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'

试试这个,看它是否有效

选择(从tbl1选择计数(id),其中purchase = true)(从tbl2中选择计数(计数),其中date> =“2018-03-03”)作为来自tbl1,tbl2的“total_count”;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM