mysql - Getting unexpected result while apllying Join SQL query -


i fetching data 4 different tables:

  1. leads
  2. payu_transactions
  3. corporate_user_rides
  4. corporate_users

and there conditions:

  1. user rides should grater 0
  2. there should number of registered , active users
  3. there time period

i have written sql queries not getting expected result- problem number of rides count , user count.

for e.g-

lets corporate x having 38 rides , 23 users it's showing 7866 rides , 7866 users.

another corporate y having 18 rides , 5 users it's showing 90 rides , 90 users.

can please help, not sure what's doing here.

i tried this-

query

select l.id             leadid,        l.corporate_id   corporateid,        "p-1"            priority,        l.source,        l.user_name      firstname,        l.user_name      lastname,        l.corporate_name corpname,        l.user_mail_id   email,        l.phone_number   phone,        l.created_at     leadcreation,        l.comments,        count(cu.id)     users,        count(cur.id)    rides,        put.amount       payment   leads l        left join payu_transactions put               on l.user_mail_id = put.email        left join corporate_user_rides cur               on l.corporate_id = cur.corporate_id        left join corporate_users cu               on l.corporate_id = cu.corporate_id  l.created_at between '2015-03-16 12:00:00' , '2016-03-17 12:00:00' group  l.user_mail_id having count(cur.id) > 0        , count(cu.id) > 0        , count(case                    when cu.status in ( 'active' ) 1                  end) > 0; 

help appreciated.

use count (distinct column.name) instead of count(column.name).


Comments