php - 如何在mysql中使用inner join或group by从两个表中获取所有余额值?

标签 php mysql

我有两张 table

表名:年份 table1

表名:月份

table2

预期输出: table3

我对上面的输出使用下面的查询,但我得到了意想不到的结果。

SELECT a.id
     , SUM(a.no_of_units_purchase) 
  FROM month a
     , year b 
 WHERE a.id=b.id 
 GROUP 
    by b.id

上述查询的输出: table4

请指导我获得预期的结果..

提前致谢..

最佳答案

您应该使用左联接 而不是简单的联接,因为表格月份不能包含给定年份的购买。可行的查询是:

select year.id,
       year.no_of_units,
       sum(ifnull(month.no_of_units_purchase, 0)) as no_of_units_purchase,
       year.no_of_units - sum(ifnull(month.no_of_units_purchase, 0)) as balance_units
from   year
       left join month on year.id = month.id
group by
       year.id, 
       year.no_of_units

关于php - 如何在mysql中使用inner join或group by从两个表中获取所有余额值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44176386/

相关文章:

java - 从MySQL 4.7升级到5.5,日期字段有问题

php - 分页:如何知道页面的评论属于哪里

php - 版本控制内容管理系统?

php - 在 mysqli 中存储和迭代查询结果

php - 来自数据库jquery的字母表 Accordion

mysql - 在我的查询中使用 Point() 会导致奇怪的结果,我使用它是错误的还是这是预期的?

PHP 使用多个 while 循环仅检索 1 行

用于列出已执行测试的 PHPUnit 配置选项

mysql - Left Join with Where 子句返回空结果

Java/MySQL 结果集中途出现空指针异常