0

「ユーザー」と「状態」の2つのテーブルがあります。私がふりをしているのは、特定の状態にあるユーザーの数を数えることです。つまり、

州の合計ユーザー サンタフェ 5 ブエノスアイレス 20

等々。

私はドクトリンでcodeigniterを使用しています。これが私のコードです:

public function countByState(){
    $this->qb = $this->em->createQueryBuilder();

    $this->qb->select('s.state_id', $this->qb->expr()->count('u.state'))
             ->from('models\States', 's')
             ->leftJoin('s.state_id' , 'u')
             ->leftJoin('models\User', 'u')
             ->groupBy('s.state_id');

    $query = $this->qb->getQuery();
    $obj = $query->getResult();

    return $obj;        
}

そして、これはエラーです: 致命的なエラー: キャッチされない例外 'Doctrine\ORM\Query\QueryException' with message '[Semantical Error] line 0, col 76 near 'u LEFT JOIN models\User': Error: Class models\States has no C:\Desarrollo\new_frame_doctrine\site\application\libraries\data\Doctrine\ORM\Query\QueryException.php の 47 行目の「state_id」という名前の関連付け

4

1 に答える 1

0

このSQLクエリを使用してください

SELECT s.name,count(*) FROM `users` u left join `state` s on u.stateid=s.id 
 group by s.id;

コードを適宜変更してください!!

id and namestate (with fields ) と users (with fields )という名前の 2 つのテーブルを作成してこれを試してみましたがid, name and state_id、うまくいきました。

乾杯!!!

于 2013-09-12T17:29:42.877 に答える