Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kueri terkait kinerja Phalcon

Untuk mengakses ->peserta dengan cara yang sama menggunakan QueryBuilder, Anda harus membangun join ke Query.

Contoh kode dapat berupa:

$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 digunakan di sini untuk membuat hasil yang mungkin multidimensi.

Permintaan semacam itu (diuji di bawah PgSQL) membuat Phalcon membuat beberapa objek ResultSet berikutnya dari peserta pi di dalam Hasil untuk proyek p .

Anda masih dapat mengulanginya dengan menggunakan foreach() tapi bagaimanapun juga, Saya tidak yakin itu mengurangi jumlah kueri akhir .

Menjalankan $result = $resultSet->toArray() membuat $result['pi'] tetap sebagai Resultset, jadi Anda harus tetap berhati-hati dalam hal itu. Anda dapat memaksanya untuk dibuang sebagai array dengan mendefinisikan kolom yang tepat di columns() parameter. Ini memiliki kelemahan - Anda tidak akan lagi mendapat untung dari groupBy() , setidaknya di Phalcon 1.3.2 dan PHP 5.5.3 saya berjalan di sini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Cara Membuat Indeks Unik 'Dua Sisi' Pada Dua Bidang?

  2. Arti id =LAST_INSERT_ID(id)

  3. Sintaks SQL ALTER TABLE – Didaftarkan oleh DBMS

  4. sisipan mysqli - tetapi hanya jika bukan duplikat

  5. Menginstal permata mysql2 untuk Ruby on Rails dengan Mac OSX 10.6