Mój skrypt jest tak:Dlaczego alias kolumny nie działa w doktrynie?
$query = Doctrine_Query::create()
->select('count(p.product_id) as num_a')
->from ('ProductComments p')
->groupBy('p.product_id')
->having('num_a =2 ');
a wygenerowany sql jest:
SELECT COUNT(i.product_id) AS i__0 FROM productcomments i GROUP BY i.product_id HAVING num_a=2
Zatem pojawia się błąd podczas wykonywania sql.
Mam dwa pytania:
dlaczego jest alias tabeli
'i'
zamiast'p'
?dlaczego jest
'num_a'
w posiadaniu klauzuli nie zastąpionej przez'i__0'
, jak to naprawić?
Dzięki za sugestię ...
Dzięki za odpowiedź. Całkowicie się z Tobą zgadzam, że nie trzeba znać wygenerowanego aliasu. Zaskakuje mnie to, że ponieważ alias dla count (p.product_id) to i__0, to i__0 powinno być użyte w klauzuli posiadającej zamiast "num_a". – user443281
Rozumiem, że był to stary post, ale natknąłem się na niego dzisiaj i chciałem wskazać, że są przypadki, w których wewnętrzne mapowanie aliasów tabeli przeszkadza - jeśli kiedykolwiek użyjesz funkcji SQL, takiej jak Within(), możesz ". • używać aliasów Doktryny wewnątrz paramustów funkcji. –