sql >> Databáze >  >> RDS >> Mysql

Dotazy související s výkonem Phalcon

Chcete-li přistupovat k ->účastníkům stejným způsobem pomocí QueryBuilderu, budete muset zabudovat spojení do Query.

Příklad kódu může být něco jako:

$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 se zde používá k tomu, aby výsledek mohl být vícerozměrný.

Tento druh dotazu (testovaný pod PgSQL) přiměl Phalcon vytvořit některé následné objekty ResultSet účastníků pi uvnitř Sady výsledků pro projekty p .

Stále ji můžete iterovat pomocí foreach() ale koneckonců nejsem si jistý, že to snížilo konečný počet dotazů .

Spouští se $result = $resultSet->toArray() vytvořeno $result['pi'] zůstat jako Resultset, takže byste měli zůstat opatrní. Můžete vynutit její výpis jako pole definováním přesných sloupců v columns() parametry. Má to svou nevýhodu – z groupBy() už nebudete profitovat , alespoň na Phalcon 1.3.2 a PHP 5.5.3, které zde běží.



  1. Jak provádět změny schématu v MySQL a MariaDB bezpečným způsobem

  2. Jak nastavit databázovou poštu na serveru SQL Server (SSMS)

  3. Jak importovat a exportovat databázi MySQL

  4. Jak vybrat více než 1 záznam za den?