Propel няма стандарт начин за извършване на подзаявки като част от критерии.
Можете или да отделите заявката си (първо да получите стойността, с която искате да сравните и след това да я използвате в оригиналната заявка) или да използвате CUSTOM
критерии с вашата подзаявка във вашата заявка за задвижване.
Ето пример за втората опция:
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
РЕДАКТИРАНЕ: Ето пример за първата опция
// 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)
Единственият проблем с тази опция е, че правите две заявки вместо едно, което може да се отрази на производителността ви, но зависи от приложението ви, разбира се.