2013-09-15 4 views
0

Я использую codeigniter, и я хочу, чтобы список кампаний 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"); 

Я хочу, чтобы получить все кампании, имеют ли они какое-либо пожертвование или нет и заказа по сумме пожертвований, которые они получили. Этот запрос получает только одну кампанию. Идеи?

ответ

0

Вам необходимо group by campaigns.id и смените для адресатов номер sum(amount) as amount.

Это проблема SQL. Я не очень хорошо знаком с воспламенителем кода, поэтому я не буду пытаться писать код.

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 для you.please, дайте мне знать статус.

Смежные вопросы