2010-06-07 94 views
2

我有這個疑問:mySQL:選擇WHERE會導致錯誤 - 爲什麼?

SELECT `manufacturers`.*, `languages`.*, COUNT(`products`.`id`) AS productcount 
FROM (`manufacturers`) 
WHERE `manufacturers`.`flushed` = `0` 
JOIN `languages` ON `manufacturers`.`lang` = `languages`.`id` 
LEFT OUTER JOIN `products` ON 
`products`.`manuf` = `manufacturers`.`mid` 
GROUP BY manufacturers.id 
ORDER BY `languages`.`id` asc, `manufacturers`.`mid` asc; 

沒有WHERE行,一切都很正常,但有了它,我得到在我的臉上泛起了錯誤1064(語法錯誤)。我想這與查詢中WHERE行的實際位置有關,所以我嘗試將它移動,但沒有任何運氣。

我該怎麼辦?

回答

10

凡而來的加入後,該集團之前(連接被認爲是from子句的一部分)

1

檢查:

SELECT `manufacturers`.*, `languages`.*, COUNT(`products`.`id`) AS productcount 
FROM (`manufacturers`) 
JOIN `languages` ON `manufacturers`.`lang` = `languages`.`id` 
LEFT OUTER JOIN `products` ON 
`products`.`manuf` = `manufacturers`.`mid` 
WHERE `manufacturers`.`flushed` = `0    -- where comes after joins 
GROUP BY manufacturers.id 
ORDER BY `languages`.`id` asc, `manufacturers`.`mid` asc; 
相關問題