Mi guión es así:¿Por qué el alias de columna no funciona en doctrina?
$query = Doctrine_Query::create()
->select('count(p.product_id) as num_a')
->from ('ProductComments p')
->groupBy('p.product_id')
->having('num_a =2 ');
Y el SQL generado es:
SELECT COUNT(i.product_id) AS i__0 FROM productcomments i GROUP BY i.product_id HAVING num_a=2
Por lo tanto me da un error al ejecutar el SQL.
Tengo dos preguntas:
por qué es el alias de la tabla en lugar de
'i'
'p'
?¿por qué la cláusula
'num_a'
no tiene una cláusula reemplazada por'i__0'
, cómo solucionarla?
Gracias por su sugerencia ...
Gracias por su respuesta. Estoy completamente de acuerdo contigo en que no es necesario saber el alias generado. Lo que me desconcierta es que dado que el alias para count (p.product_id) es i__0, i__0 debe usarse para tener una cláusula en lugar de "num_a". – user443281
Reconozco que esta era una publicación anterior, pero hoy me encontré con ella y quería señalar que hay casos en los que este mapeo interno de alias de tablas se interpone en el camino: si alguna vez usa una función SQL como Within(), puede ' t utilizar alias de Doctrine dentro de los parámetros de la función. –