2011-10-11 83 views
0
SELECT person.id, 
     person.name, 
     COUNT(DISTINCT fruit.apple) AS "Red Apple", 
     fruit.* 
FROM (SELECT * 
     FROM tree 
     ORDER BY color DESC) AS fruit 
     INNER JOIN person 
     ON fruit.id = person.id 
WHERE person.name = 'John Smith' 

现在,在我编写COUNT(DISTINCT fruit.apple) AS "Apple"之前,该代码正在工作。那有什么问题?SQL COUNT()在MySQL中不起作用

在此先感谢

+0

我敢打赌,查询返回正是你问其返回。你的数据是什么?你期望什么结果? – Randy

+2

定义“不工作”。在派生表定义中'ORDER BY color DESC'的用途是什么?另外'INNER JOIN people on fruit.id = person.id'肯定不会起作用。表名在中途改变。 –

+0

@MartinSmith:不是这样工作的:mysql_fetch_assoc():提供的参数不是一个有效的MySQL结果资源 –

回答

4

你没有group by条款。

0

试试这个

SELECT person.id, 
     person.name, 
     COUNT(DISTINCT fruit.apple) AS "Red Apple", 
     fruit.* 
FROM (SELECT * 
     FROM tree 
     ORDER BY color DESC) AS fruit 
     INNER JOIN people 
     ON fruit.id = person.id 
WHERE person.name = 'John Smith' 
GROUP BY fruit.apple