कंटेनेबल व्यवहार का उपयोग क्यों न करें
// 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);
संपादित करें:
बस कोशिश की और यह एसक्यूएल मिला (मॉड्यूल <-> टैग):
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
जाहिर है कि वांछित परिणाम वापस नहीं कर सकता, क्योंकि आपको प्रत्येक मॉड्यूल परिणाम के लिए एक प्रश्न करना होगा (जिसके परिणामस्वरूप फिर से बहुत सारे प्रश्न होंगे)।
एक निष्कर्ष के रूप में मैं सभी टैग (मेरे उदाहरण में) वापस कर दूंगा क्योंकि बहुत अधिक परिणाम पंक्तियों में ओवरहेड बहुत अधिक प्रश्नों के ऊपरी भाग से बेहतर है ..