Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các truy vấn liên quan đến hiệu suất Phalcon

Để truy cập -> người tham gia theo cùng một cách sử dụng QueryBuilder, bạn sẽ phải xây dựng kết nối vào Truy vấn.

Ví dụ mã có thể là một cái gì đó như:

$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() ở đây được sử dụng để làm cho kết quả có thể đa chiều.

Loại truy vấn đó (được thử nghiệm trong PgSQL) đã khiến Phalcon tạo một số đối tượng ResultSet tiếp theo của những người tham gia pi bên trong Tập kết quả cho các dự án p .

Bạn vẫn có thể lặp lại nó bằng cách sử dụng foreach() nhưng sau tất cả, Tôi không chắc nó có làm giảm số lượng truy vấn cuối cùng hay không .

Kích hoạt $result = $resultSet->toArray() made $result['pi'] vẫn là Tập kết quả, vì vậy bạn nên thận trọng về điều đó. Bạn có thể buộc nó phải kết xuất dưới dạng mảng bằng cách xác định các cột chính xác trong columns() tham số. Nó có mặt trái của nó - bạn sẽ không còn kiếm được lợi nhuận từ groupBy() , ít nhất là trên Phalcon 1.3.2 và PHP 5.5.3, tôi đang chạy ở đây.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Lỗi kết nối - [MySQL] [ODBC 5.3 (w) Driver] Host ‘IP’ không được phép kết nối với máy chủ MySQL này

  2. Ví dụ về giao dịch PHP + MySQL

  3. truy vấn con (Đối số không chính xác để CHỐNG LẠI) bằng cách sử dụng Mysql

  4. Mô hình hóa các biến thể sản phẩm

  5. SQL - NẾU TỒN TẠI CẬP NHẬT ELSE Lỗi cú pháp CHÈN