我正在使用 CodeIgniter,我的数据库中有 2 个表。
第一个称为大洲,如下所示:
id | continent_name
-----------------------
1 | Africa
2 | Antarctica
3 | Asia
4 | Australia
5 | Europe
6 | North America
7 | South America
第二个称为状态,如下所示:
id | continent_id | country_name
-----------------------------------
1 | 5 | Denmark
2 | 1 | Angola
3 | 7 | Peru
4 | 5 | Germany
5 | 7 | Venezuela
6 | 1 | Egypt
7 | 5 | Spain
8 | 5 | France
9 | 7 | Argentina
10 | 6 | Canada
现在我想要一个按continent_id 分组的有序列表,并从大多数记录(在我的情况下为欧洲)到最少的(亚洲)结果排序,如下所示:
Europe (4)
South America (3)
Africa (2)
North America (1)
Asia (0)
记录的数量并不重要,我将在里面使用另一个 foreach 循环。但我需要以某种方式在一个查询中实现计数、分组和订购活动记录功能:
到目前为止,我的模型中有这个:
function get_top_continents() {
$q = $this->db->from('states')
->join('continents', 'states.continent_id = continents.id')
->group_by('continent_id')
->get();
return $q;
}
但是我还需要根据组中的项目数对结果进行排序。
如何按条件进行此类排序?