Propel nie ma standardu sposób wykonywania podzapytań w ramach kryteriów.
Możesz oddzielić zapytanie (uzyskać najpierw wartość, z którą chcesz porównać, a następnie użyć jej w oryginalnym zapytaniu) lub użyć CUSTOM
kryteria z podzapytaniem w zapytaniu o napędzie.
Oto przykład drugiej opcji:
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
EDYTUJ: Oto przykład pierwszej opcji
// 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)
Jedynym problemem związanym z tą opcją jest to, że wykonujesz dwa zapytania zamiast jednego, co może wpływać na wydajność, ale oczywiście zależy to od aplikacji.