2011-05-20 44 views
0

我需要顯示來自兩個連接表的結果,僅用於最新項目。我有以下查詢:db的最新結果

SELECT project.id, 
     project.created, 
     COUNT(DISTINCT events.user_id) AS cnt 
    FROM project 
    JOIN events ON (events.project_id = project.id) 
    WHERE project.creator = $creatorID 
    AND events.user_id != $creatorID 
ORDER BY project.created DESC 
    LIMIT 1 

由於某種原因我繼續得到第一個項目......我在這裏錯過了什麼?

回答

2

你絕對是在正確的軌道上。看起來你錯過了一個GROUP BY條款爲您的總計COUNT()。試試這個:

SELECT 
    project.id, 
    project.created, 
    count(DISTINCT events.user_id) AS cnt 
FROM project 
    JOIN events ON (events.project_id = project.id) 
WHERE 
    project.creator = $creatorID 
    AND events.user_id != $creatorID 
GROUP BY project.id, project.created 
ORDER BY project.created DESC, 
LIMIT 1 
+0

+1:我錯過了。相關信息:http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html – 2011-05-20 18:49:19

+0

啊,2隻眼睛不錯--4只是更好! – santa 2011-05-20 18:51:29