Странная проблема при использовании HAVING () и Doctrine_Pager - PullRequest
1 голос
/ 24 октября 2010

Моя программа генерирует этот DQL с помощью echo $ q-> getDql (); переформатирован для удобства чтения:

SELECT o.*, t.*, COUNT(t.id) AS num_of_reservations 
FROM Property o 
LEFT JOIN o.Reservation t 
  WITH t.status=? AND 
 ( (t.start_date<=? AND t.end_date>=?) 
  OR (t.start_date>=? AND t.start_date <= ?) ) 

GROUP BY o.id 
HAVING num_of_reservations < o.nr_of_bookings

Используя модульные тесты PHP, я получаю результаты, как и ожидалось. Однако когда я отправляю этот Doctrine_Query в Doctrine_Pager, я получаю эту ошибку:

Неустранимая ошибка: необработанное исключение «Doctrine_Connection_Mysql_Exception» с сообщением «SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец« p.nr_of_bookings »в« имеющем предложение »

Я перепробовал все комбинации, такие как использование наличия ('COUNT (t.id) .....) и т. Д., Различные комбинации SELECT, все результаты, выбранные с помощью $ q-> execute (), хороши, за исключением случаев, когда я отправляю их на пейджер .

Может кто-нибудь помочь мне с этим? Я даже пытался

FROM Property p 
instead of 
FROM Property o

без разницы.

...