Propel не имеет стандартный способ выполнения подзапросов как часть критериев.
Вы можете либо отделить свой запрос (получить значение, которое хотите сравнить с первым, а затем использовать его в исходном запросе), или использовать критерии CUSTOM
с вашим подзапросом в запросе на продвижение.
Вот пример второго варианта:
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
EDIT: Вот пример первого варианта
// find the object we want to compare against
$c = new Criteria();
$c->add(CartPeer::ID, 3);
$cart = CartPeer::doSelectOne($c)
// then make the actual criteria
$c = new Criteria();
$c->add(CartPeer::CATEGORY, $cart->getCategory(), Criteria::GREATER_THAN)
Единственная проблема с этим вариантом является то, что вы делаете два запроса вместо одного, что может повлиять на вашу производительность, но это зависит от вашего применения, конечно.
Спасибо. У вас есть пример первого варианта? –
Дайте мне немного времени, и я также добавлю пример: 3 – asermax
Hooray. Благодарю. –