php - Returning Count of Users from Multiple Table With Same Query -


i have 2 tables 1 user table , 2 in engage table

in user table have userid , other fields , in engage table i've entitytype , userid field, entitytype can "login" or other want want result in 1 row should returns count of totalusers, count of totalusers have entitytype "login" exists in engage table , totaluser have engage other entitytype other "login"

every member who's engage have entry of login

what tried :

select count(u.userid) totaluser, count(e.userid) activeuser, count(eu.userid) engageduser (`users` u) left join `engagement` e on `e`.`userid`=`u`.`userid` left join `engagement` eu on `e`.`userid`=`eu`.`userid` eu.entitytype!="login" , e.entitytype="login" 

but query returning many rows

you should use subselects each user count want - like:

select (select count(*) users) totaluser,  (select count(*) users join engagement on users.userid=engagement.userid entitytype='login') activeuser, (select count(*) users join engagement on users.userid=engagement.userid entitytype!='login') engageduser 

when 1 user can have more records in engagement table:

select (select count(*) users) totaluser,  (select count(distinct users.userid) users,engagement users.userid=engagement.userid , entitytype='login') activeuser, (select count(distinct users.userid) users join engagement on users.userid=engagement.userid entitytype!='login') engageduser 

Comments