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

Lỗi giới hạn mô hình CakePHP và HABTM

tại sao không sử dụng hành vi có thể chứa

// you would probably want the next line in the app_model ot be able to use it with all models
$this->Post->actsAs = array('Containable')
$params['conditions'] = array(
);
$params['contain'] = array(
    'Media' => array(
        'fields' => array(
            'type', 'path', 'title'
        ),
        'limit' => 1
    )
);
$this->Post->find('all', $params);

CHỈNH SỬA:

Chỉ cần thử điều đó và nhận được sql này (Thẻ mô-đun <->):

SELECT `Module`.`id` FROM `modules` AS `Module` WHERE 1 = 1 

SELECT `Tag`.`id`, `ModulesTag`.`module_id`, `ModulesTag`.`tag_id` 
FROM `tags` AS `Tag` 
JOIN `modules_tags` AS `ModulesTag` 
  ON (`ModulesTag`.`module_id` IN (1, 2, 3, 4) AND `ModulesTag`.`tag_id` = `Tag`.`id`) 
WHERE `Tag`.`belongs_to` = 'Module' 
ORDER BY `Tag`.`name` ASC 
LIMIT 1

rõ ràng điều đó không thể trả về kết quả mong muốn, vì bạn sẽ phải thực hiện một truy vấn cho từng kết quả Mô-đun (sau đó một lần nữa sẽ dẫn đến quá nhiều truy vấn).

Như một kết luận, tôi sẽ trả về tất cả các Thẻ (trong ví dụ của tôi) vì chi phí chung trong quá nhiều hàng kết quả sẽ tốt hơn tổng chi phí của quá nhiều truy vấn ..



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XÓA tất cả các chủ đề trùng lặp với một vài điều kiện

  2. PHP mất nhiều thời gian hơn 90 lần để chạy truy vấn so với máy khách MySQL

  3. Nhiều bộ và mệnh đề where trong Truy vấn cập nhật trong mysql

  4. Chỉ chọn hàng mẹ nếu hàng đó không có hàng con

  5. Truy vấn để điền <table> dựa trên <select>