2015-06-16 3 views
0

Я получаю эту ошибку после того, как выполнить мой запросВозникли проблемы с кол тузд

1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «*) в качестве totalcontents от содержания как с внутренней присоединиться к категории, как кот на cat.id =» в строке 1

My SQL как этот

select z.name as zone_name, COUNT(c.*) as totalcontents 
from contents as c 
inner join categories as cat 
ON cat.id = c.category_id 
inner join zones as z 
ON z.id = cat.zone_id where c.created_by = 14 group by z.id 
+1

попробовать 'COUNT (c.id) в качестве totalcontents' –

ответ

0

При использовании INNER JOIN затем COUNT(*) будет нормально использовать.

select z.name as zone_name, COUNT(*) as totalcontents .... 

ИЛИ

select z.name as zone_name, COUNT(z.name) as totalcontents .... 

Go through this

+0

вы указать группу по z.id и выберите с z.name, не дано error –

+0

Какую ошибку вы ожидаете? –

+0

Столбец «z.name» недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. –

0

При использовании группы по функции, чтобы указать столбец для отображения столбца другого столбца, чтобы отобразить данную ошибку. Я думаю, что вы попробуете это

select z.name as zone_name, COUNT(z.name) as totalcontents 
from contents as c 
inner join categories as cat 
ON cat.id = c.category_id 
inner join zones as z 
ON z.id = cat.zone_id where c.created_by = 14 group by z.name 

или

select z.name as zone_name,totalcontents 
from zones as z 
join (select z.id as id, COUNT(z.id) as totalcontents 
    from contents as c 
    inner join categories as cat 
    ON cat.id = c.category_id 
    inner join zones as z 
    ON z.id = cat.zone_id where c.created_by = 14 group by z.id) a 
ON z.id = a.id 
Смежные вопросы