sql >> Database >  >> RDS >> Mysql

Hoe converteer ik deze MySQL-verklaring naar symfony Propel?

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.




  1. Topvragen over primaire sleutel in Oracle met voorbeelden

  2. Instanties van unieke waarde tellen in veld

  3. Hoe toegang krijgen tot een MySQL-databasewebservice via LAN?

  4. SQL SUM() voor beginners