按其他表中带有 where 子句的列的总和排序


order by sum of column in other table with where clause

我正在使用代码点火器,我想列出活动order_by每个活动收到了多少捐款。因此,我们正在处理两个表格,"运动"和"捐赠"。

我用了这个

$this->db->select('campaigns.id as id, campaigns.userId as userId, name, amount');
$this->db->join('donations','donations.campaignId = campaigns.id', 'left');
$this->db->order_by("SUM(amount)", "DESC");

我希望它得到所有活动,无论他们是否有任何捐款,并按他们收到的捐款总额排序。此查询仅获得一个广告系列。想法?

您需要

一个group by campaigns.id并将选择更改为具有sum(amount) as amount

这是一个 SQL 问题。 我对代码点火器不太熟悉,所以我不会尝试编写代码。

我认为您正在尝试在每个广告系列的捐赠表中获取捐款总额。如果我是对的,查询应该如下所示。

SELECT campaigns.*, sum(donation.donation) as donation_received FROM `donation`,`campaigns` WHERE campaigns.id=donation.cam_id group by donation.cam_id order by sum(donation.donation) desc

如果它对您有用,我可以在代码中为您编写它。请让我知道状态。