2015-06-16 50 views
0

我得到這個錯誤後執行我的查詢與MySQL計數時遇到

1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用 接近「*)從內容totalcontents爲c內部聯接類別, 上的貓cat.id =」在行1

我的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 .... 

OR

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

Go through this

+0

你是通過z.id指定組和z.name選擇,它沒有給出錯誤 –

+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