2012-10-05 92 views
0

直到今天,這是得到的一切查詢,我需要知道從我的數據庫中的照片:當使用count函數時,會導致此查詢提供此錯誤的原因是什麼?

SELECT 
    users.facebook_id, 
    users.first_name, 
    users.last_name, 
    photos.filename, 
    photos.description, 
    photos.finalist, 
    bookmarks.photo_id AS bookmark 
FROM `photos`, `users` 
LEFT JOIN bookmarks ON bookmarks.photo_id = 123 AND bookmarks.facebook_id = 123456789 
WHERE 
    users.facebook_id = photos.author AND 
    photos.id = 123 
LIMIT 1 

不過,現在我想也找出有多少票投給了這個照片。

這裏是我的「票」表:

CREATE TABLE IF NOT EXISTS `votes` (
    `photo_id` int(11) NOT NULL, 
    `facebook_id` bigint(20) NOT NULL COMMENT 'The user''s Facebook ID.', 
    `date` varchar(10) NOT NULL COMMENT 'Date formatted as YYYY-MM-DD.', 
    UNIQUE KEY `one_vote_per_day` (`photo_id`,`facebook_id`,`date`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

這裏是我試圖修改我的SQL查詢來獲取投票數:

SELECT 
    users.facebook_id, 
    users.first_name, 
    users.last_name, 
    photos.filename, 
    photos.description, 
    photos.finalist, 
    bookmarks.photo_id AS bookmark, 
    count(votes.*) AS vote_count 
FROM `photos`, `users` 
LEFT JOIN votes ON votes.photo_id = 123 
LEFT JOIN bookmarks ON bookmarks.photo_id = 123 AND bookmarks.facebook_id = 123456789 
WHERE 
    users.facebook_id = photos.author AND 
    photos.id = 123 
LIMIT 1 

上述嘗試導致了這個錯誤:

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 '*) AS vote_count FROM `photos`, `users` LEFT JOIN votes ON votes.photo_id = 1' at line 9 
+0

您應該接受一些回答您的其他問題(使用綠色複選標記)工作 –

回答

1

該錯誤是由語法問題引起的。這是asterix。該查詢正確執行,並根據需要:

SELECT 
    users.facebook_id, 
    users.first_name, 
    users.last_name, 
    photos.filename, 
    photos.description, 
    photos.finalist, 
    bookmarks.photo_id AS bookmark, 
    count(votes.photo_id) AS vote_count 
FROM `photos`, `users` 
LEFT JOIN votes ON votes.photo_id = 123 
LEFT JOIN bookmarks ON bookmarks.photo_id = 123 AND bookmarks.facebook_id = 123456789 
WHERE 
    users.facebook_id = photos.author AND 
    photos.id = 123 
LIMIT 1 
+0

該查詢,因爲它由缺乏組返回只有一個值 –

相關問題