Всем привет. Ситуация такая, есть несколько ресурсов, пытаюсь сделать выборку по ТВ-параметрам, нужно выбирать так что бы по заданным ТВ было точное совпадение 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 например есть имя твшки