WHERE ( `LinkOrderParams`.`id_order` = ( -- а вот это нет!
SELECT `id`
FROM `b_order`
WHERE `b_order`.user =2147483647
)
AND `Param`.`name` LIKE '%Формат%' -- данная часть подключается нормально
)SELECT
LinkOrderParams.id,
LinkOrderParams.id_value,
ParamValue.value,
Order.id
FROM
`b_link_order_params` AS `LinkOrderParams`
LEFT JOIN
`b_param_value` `ParamValue` ON ParamValue.id = LinkOrderParams.id_value
LEFT JOIN
`b_order` `Order` ON Order.user =2147483647
LEFT JOIN
`b_param` `Param` ON Param.id = LinkOrderParams.id_param
WHERE ( `LinkOrderParams`.`id_order` = (
SELECT `id`
FROM `b_order`
WHERE `b_order`.user =2147483647
)
AND `Param`.`name` LIKE '%Формат%'
)$s = $modx->newQuery('LinkOrderParams');
$s->leftJoin('ParamValue','ParamValue','ParamValue.id = LinkOrderParams.id_value');
$s->leftJoin('Order','Order','Order.user = 2147483647');
$s->leftJoin('Param','Param','Param.id = LinkOrderParams.id_param');
$s->select(array(
'LinkOrderParams.id',
'LinkOrderParams.id_value',
'ParamValue.value',
'Order.id'
));
$s->where(array(
'LinkOrderParams.id_order' => 'SELECT `id` FROM `b_order` WHERE user = 2147483647 // собсна вот здесь и проблема, как можно подставить вложенный запрос, не делая дополнительных выборок?
));
$s->andCondition(array(
'Param.name:LIKE' => '%Формат%'
));
$s = new xPDOCriteria($modx, " SELECT
LinkOrderParams.id,
LinkOrderParams.id_value,
ParamValue.value
FROM
`b_link_order_params` AS `LinkOrderParams`
LEFT JOIN
`b_param_value` `ParamValue` ON ParamValue.id = LinkOrderParams.id_value
LEFT JOIN
`b_order` `Order` ON Order.user = :user
LEFT JOIN
`b_param` `Param` ON Param.id = LinkOrderParams.id_param
WHERE ( `LinkOrderParams`.`id_order` = (
SELECT `id`
FROM `b_order`
WHERE `b_order`.user = :user
)
AND `Param`.`name` LIKE '%Формат%'
)", array(
':user' => $user
));
$p = $modx->getObject('LinkOrderParams',$s);
$s = $p->value;