2011-03-31 19 views
0

我正在使用mysql。這裏是我的SQL如何找到發佈最大事件數的人

SELECT LIMIT 1 
    users.id, 
    COUNT(events.id) AS events_count 
    FROM 
    INNER JOIN 'events' ON users.id = events.user_id 
    GROUP BY 
    users.id 
    ORDER BY 
    COUNT(events.id) DESC 

這裏是我得到

Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN 'events' ON users.id = events.user_id 
     GROUP BY 
     users.id' at line 5: 
     SELECT 
     users.id, 
     COUNT(events.ID) AS events_count 
     FROM 
     INNER JOIN 'events' ON users.id = events.user_id 
     GROUP BY 
     users.id 
     ORDER BY 
     COUNT(events.id) DESC 

回答

3

錯誤看來你對你的FROM子句後失蹤的表名。 LIMIT的語法也是錯誤的。在這裏尋找參考http://dev.mysql.com/doc/refman/5.1/en/select.html

SELECT 
    users.id, 
    COUNT(events.id) AS events_count 
FROM users 
INNER JOIN events ON users.id = events.user_id 
GROUP BY  
    users.id 
ORDER BY 
    COUNT(events.id) DESC 
LIMIT 1 
+0

@Richard的語法是準確的。給一個人一些時間來看看他的答案。正如您在發佈第一個修訂時使用FROM子句後缺少'user'表一樣。請記住,每個答案都有5分鐘的時間,讓它儘可能準確 – 2011-03-31 01:35:04

+0

我會撤回降票,但你仍然錯過了表名。單引號不會做 – RichardTheKiwi 2011-03-31 01:36:47

+0

@Richard好抓。我糾正它只爲你:P – 2011-03-31 01:38:16

0

LIMIT屬於查詢結束。你也不知何故從查詢中刪除users表?

SELECT 
    users.id, 
    COUNT(events.id) AS events_count 
FROM users 
    INNER JOIN events ON users.id = events.user_id 
GROUP BY 
    users.id 
ORDER BY 
    events_count DESC 
LIMIT 1 
相關問題