开发者

mySQL: Select WHERE causes error - why?

开发者 https://www.devze.com 2023-01-02 08:08 出处:网络
I have this query: SELECT `manufacturers`.*, `languages`.*, COUNT(`products`.`id`) AS productcount FROM (`manufacturers`)

I have this query:

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;

Without the WHERE row, everything works great, but with it, I get a Error 1064 (Syntax error) thrown in my face. I guess that it has 开发者_运维知识库something to do with the actual placement of the WHERE row in the query, so I tried to move it around, but without any luck.

What can I do?


Where goes after the joins, before the group by (joins are considered to be part of the from clause)


Check this:

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;
0

精彩评论

暂无评论...
验证码 换一张
取 消