用where子句在其他表中的列的总和排序

时间:2013-09-15 14:02:08

标签: php mysql codeigniter

我正在使用codeigniter,我希望列出每个已收到的捐款数量的广告系列。所以我们正在处理两个表,“广告系列”和“捐赠”。

我用过这个

$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");

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

2 个答案:

答案 0 :(得分:0)

您需要group by campaigns.id并将选择更改为sum(amount) as amount

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

答案 1 :(得分:0)

我认为你正试图在每个广告系列的捐款表中获得捐款总额。如果我是对的,则查询应如下所示。

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

如果它适合你,我可以用codeignter为你写。请告诉我状态。