Эта же проблема уже описана кем-то в
http://code.google.com/p/yii/issues/detail?id=1095, но он помечен, как invalid. Собственно, в чем проблема - есть модель с HAS_MANY или MANY_MANY отношением. Если в критерии поиска одновременно прописать и условие по какому-то из внешних полей, и лимит, то генерируются два запроса, первый из которых, без join, все равно содержит условие и вызывает, соответственно, ошибку. Вот минимальный кусок кода:
Код: Выделить всё
$criteria=new CDbCriteria;
$criteria->with = array('countries');
$criteria->compare('countries.id','1');
$criteria->limit = 2;
$exclusives = Exclusive::model()->findAll($criteria);
И, соответственно, ошибка:
Код: Выделить всё
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'countries.id' in 'where clause'