首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想找出这两张表的总和

我想找出这两张表的总和
EN

Stack Overflow用户
提问于 2019-08-23 00:20:25
回答 3查看 52关注 0票数 0

我想找出这两张表的总和

请帮我解决这个问题

表1

代码语言:javascript
运行
复制
id  |  pr_id  |  cl_one
========================
 1  |    2    |   500
------------------------
 2  |    2    |   500

表2

代码语言:javascript
运行
复制
id  |  pr_id  |   cl2
======================
 1  |    2    |   500

codeigniter查询

代码语言:javascript
运行
复制
$this->db->select('SUM(s.cl_one)+SUM(l.cl2) AS total_amount, COUNT(s.cl_one)+SUM(l.cl2) AS total_counts')
                      ->from('Table1 AS s')
                      ->join('Table2 AS l', 's.pr_id = l.pr_id')
                      ->get()->row();

结果

代码语言:javascript
运行
复制
total_amount = 2000;

total_counts = 4;

我需要这样的结果

代码语言:javascript
运行
复制
total_amount = 1500;

total_count = 3;
EN

回答 3

Stack Overflow用户

发布于 2019-08-23 00:34:01

您将得到2000,因为当您将table2中的一行连接到table1中的两行时,t2中的单行会复制自身以匹配t1中的两行。如果您随后将添加的重复行求和为额外的500

解决这些问题的最简单方法是在加入它们之前对它们进行分组和求和:

代码语言:javascript
运行
复制
SELECT t1.sum + t2.sum as total
FROM
  (SELECT pr_id, sum(cl_one) as sum FROM table1 GROUP BY pr_id) t1    
  INNER JOIN 
  (SELECT pr_id, sum(cl_2) as sum FROM table2 GROUP BY pr_id) t2    
  ON t1.pr_id = t2.pr_id

这样,t1中的一行与t2中的一行匹配,没有重复...但是我不知道你如何在codeigniter/不管你正在使用的ORM中如何做到这一点,但我希望这能帮助/很容易地被翻译

票数 0
EN

Stack Overflow用户

发布于 2019-08-23 02:06:03

终于成功了……

修复此的简单查询

代码语言:javascript
运行
复制
SELECT pr_id, SUM(sum_v) AS total_amount, COUNT(sum_v) AS total_counts FROM( 
SELECT pr_id, cl_one AS sum_v FROM table1  UNION ALL 
SELECT pr_id, cl2 AS sum_v FROM table2)x GROUP BY pr_id
票数 0
EN

Stack Overflow用户

发布于 2019-08-27 13:38:15

Codeigniter查询:

代码语言:javascript
运行
复制
$res1 = $this->db->select('SUM(cl_one) as total, COUNT(cl_one) as count').from('Table1').get().row();
$res2 = $this->db->select('SUM(cl_2) as total, COUNT(cl_2) as count').from('Table2').get().row();
$total_amount = $res1[0]['total'] + $res2[0]['total'];
$total_count = $res1[0]['count'] + $res2[0]['count'];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57613512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档