Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

condição nos critérios no framework yii php


Até onde eu sei, você não pode referenciar aliases em um WHERE parte (link de prova ). Remova a linha de condição e adicione o seguinte:
$criteria->having = 'COUNT(tbl_abc.id) > 1';

ATUALIZAÇÃO

CActiveDataProvider aceita instância do localizador , então você precisará de um escopo de modelo:
<?php
class Business extends CActiveRecord
{
  public function scopes()
  {
    return array(
      'hasSpcount' => array(
        'with' => array('reviewCount', 'category10', 'category20', 'category30', 'town'),
        'select' => 't.id,business,street,postalCode,contactNo,checkinCount,count(tbl_abc.id) as spcount',
        'join' => 'left join tbl_abc on t.id=tbl_abc.businessId',
        'group' => 't.id',
        'order' => 'spcount DESC',
        'having' => 'COUNT(tbl_abc.id) > 1',
      ),
    );
  }
}

// usage
$provider = new CActiveDataProvider(Business::model()->hasSpcount());

Espero que isso funcione