2014-11-14 8 views
-2

Ниже запрос дает результат, но то, что мне нужно, это:Включить подсчет 0, если значение пусто

city_name | total | 
+-----------+-------+ 
| Bangalore | 13 | 
| Mumbai | 21 | 
| Coimbatore|  0 | 
| Madurai |  0 | 
| salem  |  0 | 
| Chennai |  4 | 
| Pune  | 30 | 
| Ghaziabad |  1 | 
| Gurgaon |  2 | 

Но запрос дает результат:

+-----------+-------+ 
| city_name | total | 
+-----------+-------+ 
| Bangalore | 13 | 
| Mumbai | 21 | 
| Chennai |  4 | 
| Pune  | 30 | 
| Ghaziabad |  1 | 
| Gurgaon |  2 | 
+-----------+-------+ 

запроса:

select c.city_name,count(distinct r.restaurant_id) as total from restaurants r 
            left join je_restaurant_status jrs on r.restaurant_id = jrs.restaurant_id 
            left join locations l on l.location_id = r.location_id 
            left outer join cities c on c.city_id = l.city_id                        where jrs.update_date < '2014-10-01 00:00:00'       
            and jrs.registered=1 and jrs.operations_closed = 0 and jrs.temporary_disabled=1                group by c.city_id 

Какую функцию я могу использовать для включения нулевого значения из mysql. Я хочу, чтобы этот запрос соответствовал моим другим результатам запроса, чтобы не было конфликта при его сбросе в CSV-файле.

+0

Возможно, вместо 'внутреннего соединения 'возможно использовать' left join'. Возможно ли для вас создать [SQLfiddle] (http://sqlfiddle.com/) для демонстрации? – showdev

+0

'Имея счет (отличный r.restaurant_id)> 0' –

+0

б/у левый битва, но такой же результат. – Torrezzzz

ответ

0
select c.city_name,count(distinct r.restaurant_id) as total from restaurants r         
inner join status jrs on r.restaurant_id = jrs.restaurant_id           
inner join locations l on l.location_id = r.location_id           
right join cities c on c.city_id = l.city_id                    
where jrs.update_date < '2014-10-01 00:00:00'and 
jrs.registered=1 and jrs.operations_closed = 0           
group by c.city_id; 
+0

Опишите, что вы изменили и почему. Дампы кода менее полезны, чем описательные ответы. – showdev

+0

s/внутренний/правый в городах соединяются. Это приведет к добавлению нулей в другие столбцы для городов, которые не совпадают, что именно требуется OP. – Kevin

+0

изменил мой запрос, вы можете проверить? – Torrezzzz