首先,對不起我的英文。我需要一些幫助。最近我開始了Yii的第一個項目,並且一切都很好,框架似乎是完美的,但是我使用ActiveRecord從數據庫中選擇記錄時遇到了一些問題。如果總和在SQL查詢中合併,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
問題,當我使用它,我得到以下錯誤:
Active record "Types" is trying to select an invalid column "sum(if(points > 0". Note, the column must exist in the table or be an expression with alias.
問題是這個查詢是正確的,我可以手動使用它,或者(我沒有嘗試但我認爲它應該可以)與查詢生成器。我決心用AR來做到這一點,所以這是我的問題。是否有可能按照規定來做到這一點?我做錯了什麼,還是更復雜的問題?
在此先感謝您的回覆。
您是否將rank_points定義爲類中的屬性? – Skatox
@Skatox我沒有,但我定義了它,而且我有同樣的錯誤。還有什麼,我已經定義了模型中的all_points和count_all屬性,並且它正常工作。 –