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
và
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 ..