我正在使用带有 with()
语句的 CActiveRecord
检索我的记录:
Probes::model()->with(array
(
'user',
'results',
'results.answer',
'survey',
'survey.questions'
))->findByPk($id)
我想在 survey.questions
关系的 question_id
字段上使用 GROUP BY
,所以我将上面的内容更改为:
'survey.questions'=>array('group'=>'survey.questions.question_id'),
这导致了 SQL 异常 1054 Unknown column
。但是,通过分析附带的 SQL 代码:
`questions`.`question_id` AS `t6_c2`
我设法发现,我必须使用 t6_c2
别名(由 Yii 自动生成?)。因此,另一个更改为:
'survey.questions'=>array('group'=>'t6_c2'),
问题就解决了。
但是,话又说回来,别名 t6_c2
对我来说似乎相当……“不稳定”(自动生成?)。我可以强制 Yii 在这部分生成的 SQL 中使用我提供的其他别名吗?或者我能有多确定,这部分 SQL 代码不会在下一代(以后的一些)中发生变化?或者 -- 是否有任何其他方法可以实现我想要实现的目标?
最佳答案
你可以为你的关系分配别名
,
'survey.questions'=>array(
'alias' => 'surq'
'group'=>'surq.question_id',
),
关于mysql - 我可以强制 Yii 在生成的 SQL 中使用特定的别名吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23304409/