1

次の SQL クエリは Propel (1.4) ではどのように見えますか?

SELECT SUM(`price_equipment`) FROM `order_equipment` WHERE `order_id` = 57072;

Google を使用していくつかの調査を行いましたが、見つかったすべての例で GROUP BY 句が考慮されています。単一の値が必要です。

4

2 に答える 2

6

ここに group by ステートメントを追加しても問題はありません。ステートメントをロールアップするのに役立ちます。orderId でグループ化するだけです。グループ化したくない場合は、その行を削除してください。

$value = OrderEquipmentQuery::create()
          ->withColumn('SUM(price_equipment)')
          ->filterByOrderId(57072)
          ->groupByOrderId()
          ->find()

それが 1.6 でのやり方です。1.4 の場合は、j0k によって与えられた例を見ていきますが、クエリで orderId でグループ化することはおそらく安全であることを覚えておいてください。

于 2013-01-24T16:55:18.777 に答える
1

Propel 1.4 の構文は次のようになると思います:

$c = new Criteria();
$c->add(OrderEquipmentPeer::ORDER_ID, $orderId);
TestPeer::addSelectColumns($c);
$c->addAsColumn('price_sum', 'SUM('.OrderEquipmentPeer::PRICE_EQUIPMENT.')');
$results = OrderEquipmentPeer::doSelectStmt($c);

propelorm.org の古い wiki が削除されたため、1.4 のドキュメントを見つけるのは非常に困難ですが、その通りだと思います。他のコメントで述べたように、Propel 1.6 には多くの機能があり、安定性がはるかに優れているため、Propel 1.6 へのアップグレードを検討する必要があります。私の知る限り、1.4 ブランチはまったくメンテナンスされていません。

于 2013-01-24T20:31:45.467 に答える