$q = $modx->newQuery('msProduct');
$alias = $q->getAlias();
$q->select(array(
"{$alias}.*",
));
$q2 = $modx->newQuery('msProductOption');
$alias2 = $q2->getAlias();
$q2->select(array(
"product_id",
"group_concat(value) as `values`",
));
$q2->groupby('product_id');
$q2->prepare();
$sql2 = $q2->toSQL();
// print "<br />" . $sql2;
$q->query['where'][] = new xPDOQueryCondition(
array(
'sql' => "EXISTS (
SELECT NULL FROM ({$sql2}) as t
WHERE
t.product_id = {$alias}.id
AND (
(FIND_IN_SET('Административный', `values`) AND FIND_IN_SET('Подвесной', `values`))
OR (FIND_IN_SET('Административный', `values`) AND FIND_IN_SET('Промышленный', `values`) AND FIND_IN_SET('Подвесной', `values`))
)
)"
)
);
$s = $q->prepare();
$sql = $q->toSQL();
print "
" . $sql . "\n";
// $s = $modx->prepare($sql);
$s->execute();
print_r($s->errorInfo());
while($row = $s->fetch(PDO::FETCH_ASSOC)){
print_r($row);
}