sql >> データベース >  >> RDS >> Mysql

Phalconのパフォーマンス関連のクエリ

    QueryBuilderを使用して同じ方法で->参加者にアクセスするには、Queryに結合を組み込む必要があります。

    コード例は次のようになります:

    $queryBuilder = $this->getDI()->getModelsManager()
        ->createBuilder()
        ->columns(['p.id','participants.*'])
        ->addFrom('Entity\Projects', 'p')
        ->leftJoin('Entity\Participants', 'participants.projectId = p.id', 'participants')
        ->groupBy('p.id, participants.id')
        ->orderBy('p.id ASC');
    
    $resultSet = $queryBuilder->getQuery()->execute();
    

    groupBy() byは、結果を多次元にするためにここで使用されます。

    この種のクエリ(PgSQLでテスト済み)により、Phalconは参加者の後続のResultSetオブジェクトをいくつか作成しましたpi プロジェクトの結果セット内p

    foreach()を使用して、それを繰り返すことができます。 しかし結局のところ、最終的なクエリ数が減ったかどうかはわかりません

    $result = $resultSet->toArray()を起動します $result['pi']を作成しました 結果セットのままなので、注意が必要です。 columns()で正確な列を定義することにより、配列として強制的にダンプすることができます。 パラメータ。 欠点があります。groupBy()から利益を得ることができなくなります。 、少なくともここで実行されているPhalcon1.3.2およびPHP5.5.3imでは。



    1. MySQL外部キー制約、カスケード削除

    2. MySQLクエリで重複する結果を非表示にする

    3. MySQLがFULLOUTERJOINで構文エラーを報告するのはなぜですか?

    4. PDOステートメントでの列名のエスケープ