Mysql
 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'] остане като Resultset, така че трябва да бъдете внимателни с това. Можете да го принудите да изхвърля като масиви, като дефинирате точни колони в columns() параметри. Той има своя недостатък - вече няма да печелите от groupBy() , поне на Phalcon 1.3.2 и PHP 5.5.3 работи тук.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да конвертирам datetime в дата, съкращавайки часовете, оставяйки ми датите?

  2. Как да извлека резултати като многоизмерен масив от mySQL и PHP?

  3. Codeigniter :Грешка в заявката ORDER BY CASE

  4. Как да изпълня PHP заявка при избор на опция с помощта на AJAX?

  5. Необходима ли е транзакция за единична заявка за актуализиране?