Mysql Zend_Db_Select-连接和计数-可能的Zend Bug?

Mysql Zend_Db_Select-连接和计数-可能的Zend Bug?,mysql,sql,zend-framework,mysql-error-1140,Mysql,Sql,Zend Framework,Mysql Error 1140,我在使用Zend_Db_Table_Select从SQL查询中获取COUNT()时遇到了一个问题,我认为这可能是一个错误,因为它应该生成的SQL实际上可以工作。下面是Zend Select查询:($这是一个Zend_Db_表,在本例中重命名为table1) 这会产生以下错误: SQLSTATE[42000]: Syntax error or access violation: 1140 Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with

我在使用Zend_Db_Table_Select从SQL查询中获取COUNT()时遇到了一个问题,我认为这可能是一个错误,因为它应该生成的SQL实际上可以工作。下面是Zend Select查询:($这是一个Zend_Db_表,在本例中重命名为
table1

这会产生以下错误:

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]

…针对数据库运行时,返回预期结果,无错误。有什么想法发生了什么,为什么会出错,以及如何避免

您是否尝试查看zend_db生成的实际查询?

由于SQL是返回错误的实体,如果您说生成的SQL语句有效,我发现很难理解zend_db_Select如何成为罪魁祸首。是否正在运行其他查询?你在给这个查询分页吗?哈,这是个好主意。我发现问题是,我认为joinLeft的默认第三个参数是不选择任何内容。事实上,它选择了tableName.*。这将查询变成
SELECT COUNT(*)作为'COUNT',users.*,table2.*从表1….
,这导致了问题。我将其传递为null而不是零,现在查询与我所想的一样。再次感谢。
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]