我正在尝试使用仅返回计算列的 Propel 执行选择,但我总是选择其他列。
例如:
$criteria = new MuestraQuery();
$criteria->clearSelectColumns()
->addAsColumn('numEspesores', 'count(distinct muestra.sal_espesor)')
结果查询:
SELECT muestra.sal_id, muestra.sal_regimen,
-- ...
-- (ALL FIELDS OF THE TABLE HERE...)
-- ...
count(distinct muestra.sal_espesor) AS numEspesores
FROM muestra
我已经能够减少选择的字段数量,仅包括一个字段。例如,此查询仅返回两个字段:
$criteria = new MuestraQuery();
$criteria->clearSelectColumns()
->select(MuestraTableMap::COL_SAL_ID)
->addAsColumn('numEspesores', 'count(distinct muestra.sal_espesor)')
结果查询:
SELECT count(distinct muestra.sal_espesor) AS numEspesores,
muestra.sal_id AS "muestra.sal_id"
FROM muestra
¿ 在 Propel 中有没有办法只选择计算列?
我已经看到ModelCriteria->doSelect()
基于受保护的ModelCriteria->isSelfSelected
属性添加了列,该属性已设置ModelCriteria->select()
但未设置,addAsColumn()
因为它来自 Criteria,并且在 ModelCriteria 中没有被覆盖。
不知道这是一个错误还是我做的不好。