首先,对不起我的英语。我需要一些帮助。最近我用 Yii 开始了我的第一个项目,一切都很好,框架看起来很完美,但是我在使用 ActiveRecord 从数据库中选择记录时遇到了一点问题。
假设我有以下代码:
$criteria = new CDbCriteria();
$criteria->select = '*, user.*, sum(if(points > 0, 1, 0)) as rank_points, sum(points) as all_points, count(*) as count_all';
$criteria->group = 'user_id';
$criteria->order = 'all_points desc';
$users = Types::model()
->with('user')
->findAll($criteria);
我有这个问题
sum(if(points > 0, 1, 0)) as rank_points
当我使用它时,我收到以下错误:
活动记录“类型”正在尝试选择无效列“sum(if(points > 0”。注意,该列必须存在于表中或者是具有别名的表达式。
问题是这个查询是正确的,我可以手动使用它,或者(我没有尝试过,但我认为它应该可以)使用查询生成器。我决心用 AR 做到这一点,所以这是我的问题;是否有可能按照说明执行此操作?我做错了什么,还是一个更复杂的问题?
提前感谢您的每一个回复。