Propel tidak memiliki standar cara melakukan subkueri sebagai bagian dari kriteria.
Anda dapat memisahkan kueri Anda (mendapatkan nilai yang ingin Anda bandingkan terlebih dahulu dan kemudian menggunakannya ke dalam kueri asli) atau menggunakan CUSTOM
kriteria dengan subquery Anda dalam kueri propel Anda.
Berikut ini contoh opsi kedua:
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
EDIT: Berikut ini contoh opsi pertama
// 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)
Satu-satunya masalah dengan opsi ini adalah Anda membuat dua kueri alih-alih satu, yang mungkin berdampak pada kinerja Anda, tetapi tentu saja itu tergantung pada aplikasi Anda.