mySQL:选择WHERE会导致错误 - 为什么?
问题描述:
我有这个疑问: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行的实际位置有关,所以我尝试将它移动,但没有任何运气。
我该怎么办?
答
凡而来的加入后,该集团之前(连接被认为是from
子句的一部分)
答
检查:
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;