我有2个mysql表如下:
客户:ID | 姓名
客户级别:ID | USER_ID | 客户 ID | 等级
我需要按名称和他的平均级别对客户列表进行分页(每个用户为他的客户定义一个级别)。例如,如果我有以下示例:
客户:
ID | NAME
1 | democustomer
2 | bubul
客户级别
ID | USER_ID | CUSTOMER_ID | LEVEL
1 | 8 | 1 | 2
2 | 9 | 1 | 4
3 | 11 | 2 | 3
4 | 13 | 2 | 4
对于每个客户,我需要拥有他的平均水平:
客户平均水平:
NAME | AVG_LEVEL
democustomer | 3
bubul | 3.5
这可以通过这个 sql 请求实现:
SELECT c.name, ROUND(AVG(ucn.note)) FROM `customers` as c, `customers_level` as ucn WHERE c.id = ucn.customer_id GROUP BY ucn.customer_id ASC
我可以对名称进行排序,但我不知道如何添加可用于分页器的 AVG_LEVEL 字段?这是我的控制器:
$this->Paginator->settings = $this->paginate;
$customers = $this->Paginator->paginate('Customer');
如何在我的客户分页数组列表中添加一个虚拟字段,以便能够按名称和级别 avg 进行排序?