2012-05-02 12 views
5

Sto cercando di costruire una query che ha un attributo group by, im centratura per ottenere il id e la count si continua a dirmi che la count (*) è valida colonna nome come potrei ottenere il count dalla query group by ??nei criteri di Yii come ottenere il conteggio (*)

+0

può u pls mostrare il codice di lavoro – Gopesh

+0

si usa metodo() o stai provando qualcosa come 'Yii :: app() -> db-> createCommand() -> seleziona ('id, nome utente, profilo') -> da ('tbl_user u') -> join ('tbl_profile p', 'u.id = p.user_id') -> dove ('id =: id', array (': id' => $ id)) -> queryRow(); ' –

+1

la risposta è che dobbiamo dare il' 'count (*)' 'nome alias come' 'count (*) come count'' – Hilmi

risposta

14

Il lavoro è con pseudonimo. Yii 1.1.11. Fallisce altra

$criteria= new CDbCriteria(); 
$criteria=array(
      'group'=>'attribute', 
      'select'=>'id,count(*) AS cc' 
); 
+1

Quindi come posso accedervi allora? '$ x = X :: model() -> findAll (...); $ x [0] -> cc' non funziona .. –

+1

Lo fa se aggiungo la variabile nel modello: 'classe X .. {public $ cc;'. Dopodiché, '$ x [0] -> cc' funziona. –

0
$criteria= new CDbCriteria(); 
$criteria=array(
      'group'=>'attribute', 
      'select'=>'id,count(*) AS cc', 
      'distinct'=>true, 
); 
2

Questa non è esattamente una risposta alla tua domanda, ma potrebbe ancora essere utile per voi. Se si utilizza il risultato di guardare solo fino un conteggio per un attributo specifico, non è necessario per fecth un intero array, ma utilizzare count il metodo di Yii:

$criteria= new CDbCriteria(); 
$criteria.compare('col_name', $desired_col_value); 
$count = X::model()->count($criteria); 
Problemi correlati