J'essaie d'effectuer une sélection avec Propel qui renvoie uniquement les colonnes calculées, mais j'ai toujours d'autres colonnes sélectionnées.Sélectionnez uniquement les colonnes calculées dans Propel
Par exemple:
$criteria = new MuestraQuery();
$criteria->clearSelectColumns()
->addAsColumn('numEspesores', 'count(distinct muestra.sal_espesor)')
requête résultante:
SELECT muestra.sal_id, muestra.sal_regimen,
-- ...
-- (ALL FIELDS OF THE TABLE HERE...)
-- ...
count(distinct muestra.sal_espesor) AS numEspesores
FROM muestra
J'ai été en mesure de réduire le nombre de champs sélectionnés ne comportant qu'un champ. Par exemple, cette requête ne retourne que deux champs:
$criteria = new MuestraQuery();
$criteria->clearSelectColumns()
->select(MuestraTableMap::COL_SAL_ID)
->addAsColumn('numEspesores', 'count(distinct muestra.sal_espesor)')
requête résultante:
SELECT count(distinct muestra.sal_espesor) AS numEspesores,
muestra.sal_id AS "muestra.sal_id"
FROM muestra
¿Est-il un moyen Propel pour sélectionner uniquement les colonnes calculées?
J'ai vu des colonnes sont ajoutées à ModelCriteria->doSelect()
sur la base protégée ModelCriteria->isSelfSelected
propriété, qui est situé dans ModelCriteria->select()
mais pas dans addAsColumn()
parce qu'il est de critères et il n'outrepassée dans ModelCriteria.
Je ne sais pas s'il s'agit d'un bug ou si je fais quelque chose de mal.