Выборка по нескольким ТВ

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;
    }

подскажите пожалуйста где я ошибаюсь