mySQL: выберите, ГДЕ вызывает ошибку - почему? - PullRequest
2 голосов
/ 07 июня 2010

У меня есть этот запрос:

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 в запросе, поэтому я попытался переместить ее, но безуспешно.

Что я могу сделать?

Ответы [ 2 ]

10 голосов
/ 07 июня 2010

Куда идет после объединений, до группировки по (объединения считаются частью предложения from)

1 голос
/ 07 июня 2010

Проверьте это:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...