Propel non ha uno standard modo di eseguire le sottoquery come parte di un criterio.
Puoi separare la tua query (ottenere prima il valore con cui vuoi confrontare e quindi utilizzarlo nella query originale) o utilizzare un CUSTOM
criteri con la tua sottoquery nella tua query propel.
Ecco un esempio della seconda opzione:
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
MODIFICA: Ecco un esempio della prima opzione
// 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)
L'unico problema con questa opzione è che stai facendo due query invece di uno, che potrebbe influire sulle tue prestazioni, ma ovviamente dipende dalla tua applicazione.