Моего сценария выглядит так:Почему псевдоним столбца не работает в доктрине?
$query = Doctrine_Query::create()
->select('count(p.product_id) as num_a')
->from ('ProductComments p')
->groupBy('p.product_id')
->having('num_a =2 ');
И сгенерированный SQL является:
SELECT COUNT(i.product_id) AS i__0 FROM productcomments i GROUP BY i.product_id HAVING num_a=2
Таким образом, я получаю сообщение об ошибке при выполнении SQL.
У меня есть два вопроса:
почему это псевдоним таблицы
'i'
вместо'p'
?Почему
'num_a'
в том, что предложение не заменено на'i__0'
, как его фиксировать?
Спасибо за ваше предложение ...
Спасибо за ваш ответ. Я полностью согласен с вами в том, что нет необходимости знать сгенерированный псевдоним. Меня озадачивает то, что, поскольку псевдоним для count (p.product_id) равен i__0, i__0 следует использовать в условии предложения вместо «num_a». – user443281
Я признаю, что это был старый пост, но я наткнулся на него сегодня и хотел указать, что есть случаи, когда это внутреннее сопоставление псевдонимов таблицы мешает - если вы когда-либо используете функцию SQL, такую как Within(), вы можете " t используйте псевдонимы Doctrine внутри параметров функции. –