Thursday, 15 April 2010

MySql how to show zero when no value found -



MySql how to show zero when no value found -

i've got query:

select ent_video_tipo, count(ent_video_tipo) cnt entradas entradas.ent_user= '1' grouping ent_video_tipo order cnt desc

and give me:

ent_video_tipo|cnt 3 | 3 1 | 3 4 | 1 2 | 1

when

select ent_video_tipo, count(ent_video_tipo) cnt entradas entradas.ent_user= '2' grouping ent_video_tipo order cnt desc

i

ent_video_tipo|cnt 1 | 4 2 | 2 3 | 2

and wanted receive 0 ent_video_tipo = 4. this

ent_video_tipo|cnt 1 | 4 2 | 2 3 | 2 4 | 0

ent_video_tipo has own table:

type_id|type_name 1 | 2 | b 3 | c 4 | d

ok since ent_video_tipo has own type can utilize left bring together as

select evt.type_id, coalesce(count(e.ent_video_tipo),0) cnt ent_video_tipo evt left bring together entradas e on e.ent_video_tipo = evt.type_id , e.ent_user= '2' grouping evt.type_id order cnt desc ;

demo

update way of doing it

select evt.type_id, coalesce(cnt,0) cnt ent_video_tipo evt left bring together ( select ent_video_tipo, count(ent_video_tipo) cnt entradas ent_user= '2' grouping ent_video_tipo )e on e.ent_video_tipo = evt.type_id

demo

mysql

No comments:

Post a Comment