mysql - How to make that query? -


let's imagine have table tasks contains

user_id  date    1         2015-01-01       1         2015-01-01      1         2015-01-02         2         2015-01-03     

how display data below

user_id      count       date    1          2           2015-01-01    1          1           2015-01-02    1          0           2015-01-03     2          0           2015-01-01    2          0           2015-01-02    2          1           2015-01-03        

if zeros are important, might this:

select     user_id_date_crossjoin.user_id,     user_id_date_crossjoin.`date`,     coalesce(`count`, 0) `count`     (select       user_id,       `date`           (select distinct user_id tasks) all_userids,       (select distinct `date` tasks) all_userid_dates     ) user_id_date_crossjoin left outer join     (select        user_id,        count(*) `count`,        `date`     tasks     group user_id, `date`) user_id_date_counts on user_id_date_crossjoin.user_id = user_id_date_counts.user_id , user_id_date_crossjoin.`date` = user_id_date_counts.`date` 

see http://sqlfiddle.com/#!9/e17090/3


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -