Php 相关模型上的STAT关系';s统计关系,Yii

Php 相关模型上的STAT关系';s统计关系,Yii,php,mysql,yii,relational-database,Php,Mysql,Yii,Relational Database,我对Yii中的统计关系有问题。我不确定我所寻找的是否可能与当地的彝族关系有关。我会尽力描述我的问题,如果不清楚,请询问具体细节 我有三张桌子,因此有三个模型 | tablea | | tableb | | tablec | mysql> select * from tablea; +----+--------+ | id | name | +----+--------+ | 1 | Item 1 | | 2 | Item 2 |

我对Yii中的统计关系有问题。我不确定我所寻找的是否可能与当地的彝族关系有关。我会尽力描述我的问题,如果不清楚,请询问具体细节

我有三张桌子,因此有三个模型

| tablea         |
| tableb         |
| tablec         |


mysql> select * from tablea;
+----+--------+
| id | name   |
+----+--------+
|  1 | Item 1 |
|  2 | Item 2 |
+----+--------+
2 rows in set (0.00 sec)

mysql> select * from tableb;
+----+------+----------+
| id | Aid  | name     |
+----+------+----------+
|  1 |    1 | B Item 1 |
|  2 |    2 | B Item 2 |
|  3 |    1 | B Item 3 |
+----+------+----------+
3 rows in set (0.00 sec)

mysql> select * from tablec;
+----+------+----------+-------+
| id | Bid  | name     | value |
+----+------+----------+-------+
|  1 |    1 | C Item 1 |    10 |
|  2 |    2 | C Item 2 |    20 |
|  3 |    1 | C Item 3 |    15 |
|  4 |    2 | C Item 4 |     5 |
|  5 |    3 | C Item 5 |    12 |
+----+------+----------+-------+
5 rows in set (0.00 sec)
这种关系就像TableA有很多TableB,TableB有很多TableC

我在表C中有一个值字段。我可以从表B中得到数值总和的统计关系。我想要的是表A中所有表C项的总和。我需要在具有排序功能的GridView中使用=它们

你知道如何实施吗


谢谢

您可以尝试将第三个表加入到您的
表A
模型中的关系中,如下所示:

public function relations()
{
    return array(
        ...
        'TableCCount' => array(self::STAT, 'TableB', 'Aid', 'join'=>'INNER JOIN `tablec` `tc` ON `tc`.`Bid` = `t`.`id`'),
        ...
    );
}

未测试,因此可能需要一些编辑。

您可以尝试将第三个表连接到
表a
模型中的关系,如下所示:

public function relations()
{
    return array(
        ...
        'TableCCount' => array(self::STAT, 'TableB', 'Aid', 'join'=>'INNER JOIN `tablec` `tc` ON `tc`.`Bid` = `t`.`id`'),
        ...
    );
}

未经测试,因此可能需要进行一些编辑。

谢谢,这很有效。但这并没有完全使用关系,我们在联接中使用表名。这是土生土长的彝族方法吗?我想知道为什么我们不能在统计关系中使用“通过”。谢谢,这是有效的。但这并没有完全使用关系,我们在联接中使用表名。这是土生土长的彝族方法吗?我想知道为什么我们不能在STAT关系中使用“through”。