2011-10-11 87 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