Propel nemá standard způsob provádění dílčích dotazů jako součást kritérií.
Dotaz můžete buď oddělit (nejprve získat hodnotu, se kterou chcete porovnat, a poté ji použít v původním dotazu), nebo použít CUSTOM
kritéria s vaším dílčím dotazem ve vašem propel dotazu.
Zde je příklad druhé možnosti:
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
UPRAVIT: Zde je příklad první možnosti
// 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)
Jediný problém s touto možností je, že zadáváte dva dotazy místo jednoho, což může mít dopad na váš výkon, ale záleží samozřejmě na vaší aplikaci.