MYSQL Left Join COUNTS AND SUMS from multiple tables -


i have tried looking similar questions here in , have not found far. feel free tag duplicate or similar question 1 if you'd like.

i want join several columns display report.

i have 3 tables.

users

id  name 1   chris 2   john 3   rick 

inmessages

id  content    1   hello1 2   hello2 3   response1 4   response2 5   hello3 6   hello4 

outmessages

id userid inmessageid content         currentrate 1  1      1           replyhello1     10 2  2      2           reply1hello2    10    3  3      2           reply2hello2    10 4  3      2           reply3hello2    10 5  1      3           replyresponse1  10 6  2      4           replyresponse2  10 7  1      5           replyhello3     4 8  3      6           replyhello4     4 

and report i'd see like:

user   inmessagescount outmessagescount rate10 rate4 chris  3               3                2      1      john   2               2                1      1 rick   2               3                2      1 

i have tried existing queries like:

  count(distinct inmessages.id) inmessagescount,   count(distinct outmessages.id) outmessagescount 

but stuck how make 1 rates.

thanks in advance!

you issue seems multiple joins creating duplicate records, hence needing distinct in current counts. can't use counting number of occurrences of non distinct field

as such tempted try this:-

count(distinct if(outmessages.currentrate = 10, outmessages.id, null) ) rate10, count(distinct if(outmessages.currentrate = 4, outmessages.id, null) ) rate4 

ie, if id 10 use id, otherwise use null. count should (i think) count non null values.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -