Всем привет. Ситуация такая, есть несколько ресурсов, пытаюсь сделать выборку по ТВ-параметрам, нужно выбирать так что бы по заданным ТВ было точное совпадение SQL запрос SELECT * FROM modx_site_content AS modResource JOIN modx_site_tmplvar_contentvalues TemplateVarResources ON modResource.id = TemplateVarResources.contentid JOIN modx_site_tmplvars tv ON tv.id=TemplateVarResources.tmplvarid WHERE ( ( modResource.deleted = 0 AND modResource.hidemenu = 0 AND modResource.published = 1 ) AND ( ( tv.name = 'item_country' AND TemplateVarResources.value = '1' ) AND ( tv.name = 'item_color' AND TemplateVarResources.value = '2' ) ) ) xPDO function prepareQueryBeforeCount(xPDOQuery $c){
$c = parent::prepareQueryBeforeCount($c);
//$filter = $this->prepareFilterCriteria($this->getProperty('filter'));
$filter = array(
array(
'tv.name' => 'item_country',
"TemplateVarResources.value" => 1
),
array(
'tv.name' => 'item_color',
"TemplateVarResources.value" => 2
)
);
if ($filter){
$c->innerJoin('modTemplateVarResource', 'TemplateVarResources');
$c->innerJoin('modTemplateVar', 'tv', "tv.id=TemplateVarResources.tmplvarid");
$c->where($filter);
}
return $c;
} подскажите пожалуйста где я ошибаюсь
Каждый отдельный ТВ-параметр нужно приджойнить отдельно: Выборка ресурсов с TV-параметрами
спасибо за ответ… это я уже понял… теперь вопрос стал в другом… как избавится от явного указания ID для TV Price.tmplvarid = 14 например есть имя твшки