Mysql 单个查询中的 Join、Group by 和求和

问题描述 投票:0回答:1

我有2张桌子:

表 tms_invoices

id load_id 公司名称 金额
1 11 公司1 40
2 11 公司1 30
3 11 公司2 40
4 12 公司3 40

表 tms_loads

id load_name is_archived
11 负载1 0
12 负载2 1
13 负载3 1
global $wpdb;
$table_name1 = $wpdb->prefix . 'tms_invoices';
$table_name2 = $wpdb->prefix . 'tms_loads';
/**
* show invoices of loads that are not archived in loads table
*/
$rows = $wpdb->get_results("SELECT $table_name1.* FROM $table_name1 LEFT JOIN $table_name2 ON $table_name1.load_id = $table_name2.id WHERE $table_name2.is_archived = '0'", ARRAY_A);
return $rows;

上面的代码正在获取与未存档的负载相关的所有发票。 但我也想按公司名称和金额列的总和进行分组。 所以输出应该是:

load_id 公司名称 金额
  11 公司1 70
  11 公司2 40

有人可以帮我做这个吗?

mysql wordpress mysqli left-join
1个回答
0
投票

这可以使用

group by
:

来完成
SELECT load_id, company_name, sum(amount) as amount
FROM tms_invoices ti 
LEFT JOIN tms_loads tl ON ti.load_id = tl.id
WHERE tl.is_archived = '0'
GROUP BY load_id, company_name

演示在这里

© www.soinside.com 2019 - 2024. All rights reserved.