Ошибка mysql # 1064 при попытке ограничить результаты, где count () не 0 - PullRequest
0 голосов
/ 28 декабря 2011

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

SELECT helpc.cid, COUNT(help.cid) AS children_count FROM air_help_category AS helpc LEFT JOIN air_help AS help ON helpc.cid = help.cid GROUP BY cid WHERE hildren_count > 0

но я получаю

# 1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'WHERE children_count> 0 LIMIT 0, 30' в строке 1`

Проверен код ошибки ядра, но все еще не удается это исправить.

Все, чего я пытаюсь добиться, - это получить идентификаторы, у которых есть хотя бы один ребенок.

Ответы [ 3 ]

2 голосов
/ 28 декабря 2011

Поместите «где» перед «группой» на «

0 голосов
/ 28 декабря 2011

Прежде всего, предложение WHERE должно идти до GROUP BY. Кроме того, вы не можете использовать совокупные значения полей для WHERE - используйте вместо этого HAVING, например:

SELECT helpc.cid, COUNT(help.cid) AS children_count 
FROM air_help_category AS helpc LEFT JOIN air_help AS help ON helpc.cid = help.cid 
GROUP BY cid 
HAVING COUNT(help.cid) > 0
0 голосов
/ 28 декабря 2011
SELECT helpc.cid, COUNT(help.cid) AS children_count
FROM air_help_category AS helpc LEFT JOIN air_help AS help
ON (helpc.cid = help.cid) WHERE children_count < 0 GROUP BY cid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...