Насколько я понял, REVO XPDOQuery позволяет сформировать любой запрос.. Конечно, через одно место получается.. (точно.. через xPDO). Но, вроде ничего не упущено...
http://api.modxcms.com/xpdo/om/xPDOQuery.html
mixed $query = array (
'command' => 'SELECT',
'distinct' => '',
'columns' => '',
'from' => array (
'tables' => array (),'joins'=>array(),),'where'=>array(),'groupby'=>array(),'having'=>array(),'orderby'=>array(),'offset'=>'','limit'=>'',) (line 84)
access:
public - можно вручную "расчленить" нужный запрос... полученные части сложить в массив...
Для запросов типа update | set charset и т.д., смотреть ::commmand()
http://api.modxcms.com/xpdo/om/xPDOQuery.html#methodcommand
Удачи!
ps...
http://community.modx-cms.ru/blog/947.html - тут, например, запрос-монстр сформирован при помощи этого PDO