1

下面的 SQL 查询在 Propel (1.4) 中是什么样子的?

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

我用谷歌做了一些研究,但我发现的所有例子都考虑到了 GROUP BY 子句。我只需要一个值。

4

2 回答 2

6

在这里添加分组语句不会有什么坏处,因为它有助于汇总您的语句,只需按您的 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);

从 1.4 开始很难找到文档,因为他们已经杀死了 propelorm.org 上的旧 wiki,但我认为这是正确的。正如我在其他评论中所说,您应该考虑升级到 Propel 1.6,因为它具有更多功能和更好的稳定性。据我所知,1.4 分支根本没有得到维护。

于 2013-01-24T20:31:45.467 回答