Propel heeft geen standaard manier om subquery's uit te voeren als onderdeel van een criterium.
U kunt uw zoekopdracht scheiden (verkrijg eerst de waarde waarmee u wilt vergelijken en gebruik deze vervolgens in de oorspronkelijke zoekopdracht) of gebruik een CUSTOM
criteria met uw subquery in uw propel-query.
Hier is een voorbeeld van de tweede optie:
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
BEWERKEN: Hier is een voorbeeld van de eerste optie
// 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)
Het enige probleem met deze optie is dat je twee zoekopdrachten doet in plaats van één, wat van invloed kan zijn op je prestaties, maar het hangt natuurlijk af van je toepassing.