2012-03-26 55 views
1

我從我的MySQL數據庫中選擇用戶的信息,如下圖所示:內加入使用COUNT(*)

SELECT * FROM `Users` WHERE `$user_or_id` = ? 

不過,我想額外咬下信息添加到返回的數據。數據的額外位數是名爲'Venues'的表中的記錄總數,其中行'字段'user_id'與表'用戶'中的'id'字段相同。

請你能告訴我哪裏出了問題以下查詢?以下是我收到的錯誤:

您的SQL語法錯誤;檢查手冊, 對應於您的MySQL服務器版本的正確語法使用 附近'*)FROM Users作爲內部聯接Venues AS v ON u.id = v.user_id WHERE u.id =''在第1行

SELECT u.*, v.count(*) FROM `Users` AS u INNER JOIN `Venues` AS v ON u.id = v.user_id WHERE u.$user_or_id = ? 
+1

可能'count(v。*)'(如果可能的話)。 – hakre 2012-03-26 19:20:01

+1

你必須使用GROUP BY語句 – MarcinJuraszek 2012-03-26 19:21:12

回答

2
SELECT u.*, COUNT(v.*) FROM `Users` AS u INNER JOIN `Venues` AS v ON u.id = v.user_id WHERE u.$user_or_id = ? 

COUNT是一個MySQL函數,而不是表v的成員。傳遞一個表示你想要計算的參數 - 在這種情況下,v的行。

1

應該COUNT(v.*)。否則它被解釋爲「表V內的函數計數」,這是無效的。

1

只需使用count(*),而不是v.count(*)