$c = $modx->newQuery('modResource'); $c->innerJoin

$c = $modx->newQuery('modResource');
$c->innerJoin('modTemplateVarResource', 'tv', "tv.tmplvarid=modResource.id AND tv.tmplvarid = 1 AND tv.value='value1'");
$c->innerJoin('modTemplateVarResource', 'tv', "tv2.tmplvarid=modResource.id AND tv2.tmplvarid = 2 AND tv2.value='value2'");

Развивай далее запрос как хочется.

Да, в xPDO не получается формировать запросы с подзапросами (типа select… where col.value in (select… from )) и т.п., но тем не менее на большинство задач тривиальных его хватает вполне.