1

我有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 进行排序?

4

0 回答 0