2012-10-15 67 views
0

請誰能告訴我有什麼不對的MySQL查詢這個MySQL查詢出了什麼問題(#1064)?

SELECT count(items.id) AS numrows 
FROM items, subcategories 
WHERE items.`base_school` = 'UNN' 
    AND items.subcategory = subcategories.id 
    AND subcategories.parent_category = 3 
JOIN `item_images` 
    ON items.id=`item_images`.`item_id` 

它不斷拋出了這個錯誤:

#1064 - 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 'JOIN item_images ON items.id= item_images . item_id ' at line 1

回答

3

你在錯誤的位置WHERE條款,試試這個:

SELECT count(items.id) AS numrows 
FROM items 
INNER JOIN subcategories 
    ON items.subcategory = subcategories.id 
INNER JOIN item_images 
    ON items.id=item_images.item_id 
WHERE items.base_school = 'UNN' 
    AND subcategories.parent_category = 3 
+1

謝謝!現在起作用了。我注意到一個新問題。 'item_images'表包含我的'items'表中單個項目的六個圖像。當我執行這個查詢時,它會返回六(6)而不是一(1)的計數。我想這是因爲與單個項目相關的六個圖像。我如何解決這個問題?我知道DISTINCT,但我有一種感覺,它可能不是這樣做的最有效的方式。 –

+2

@FavouriteChigozieOnwuemene沒有看到完整的表格結構和數據,這將是猜測,但你可以嘗試'item_images'表上的子查詢。如果你想,用一些示例數據創建一個[sql小提琴](http://sqlfiddle.com/),我可以看看 – Taryn

+1

http://sqlfiddle.com/#!2/11aa4 –