Zend_Db_Select - Joins and Count - Возможная ошибка Zend? - PullRequest
4 голосов
/ 06 февраля 2010

У меня проблема с получением COUNT () из SQL-запроса с использованием Zend_Db_Table_Select, и я думаю, что это может быть возможной ошибкой, поскольку генерируемый им SQL действительно работает. Вот запрос Zend Select: ($ это Zend_Db_Table, переименованный в table1 в этом примере)

    $select = $this->select();
    $select->setIntegrityCheck(false);

    // Select Count
    $select->from($this, array("COUNT(*) as 'COUNT'"))
           ->joinLeft('users', 'table1.userID = users.userID')
           ->joinLeft('table2', 'users.anotherKey = table2.anotherKey');

    // Add Where clause after join
    $select->where('users.anotherKey = ?', $anotherKeyValue);

Это дает ошибку:

SQLSTATE[42000]: Syntax error or access violation: 1140 
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is 
illegal if there is no GROUP BY clause`

Однако этот запрос ...

SELECT COUNT(*) AS 'count' FROM table1
    LEFT JOIN users ON table1.userID = users.userID
    LEFT JOIN table2 ON users.anotherKey = table2.anotherKey
    WHERE users.anotherKey = [anotherKeyValue]

... возвращает ожидаемые результаты без ошибок при запуске с базой данных. Есть идеи, что происходит, почему ошибка и как ее обойти?

1 Ответ

2 голосов
/ 06 февраля 2010

вы пытались увидеть фактический запрос, который производит zend_db?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...