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