Ты видимо недопонимаешь механизма xPDO. Сам xPDO ничего в базе данных не выбирает, у него нет какого-то собственного механизма прямого обращения к данным базы. xPDO формирует в итоге чистый SQL, и потом выполняет этот SQL-запрос к базе данных. Сделай так:
$c = $modx->newQuery('modResource'); $c->leftJoin('modTemplateVarResource', 'TemplateVarResources'); $c->leftJoin('modTemplateVar', 'tv', "tv.id=TemplateVarResources.tmplvarid"); $c->where(array( array( "tv.name" => 'icon', "TemplateVarResources.value" => "example-icon", ), array( "OR:tv.name:=" => 'isCosmos', "TemplateVarResources.value" => "IS", ), )); // Готовим SQL-запрос $c->prepare(); // Выводим этот SQL-запрос print $c->toSQL();
На выходе ты увидишь сформированный SQL.
То есть что ты сам напишешь чистый SQL, что подготовишь его средствами xPDO — разницы никакой не будет. А какой результат будет возвращен, зависит уже от этого SQL-запроса, и не вежно сам ты его написал, или xPDO сформировал.