这条sql有朋友会写吗

表A 任务表task

          users_id(用户ID)    mission(每月任务数)      date(月份) 
               1                  15                  1483228800
               2                  10                  1483228800
               1                  15                  1483315200
               2                   8                  1483315200



表B 业绩订单表order   
    
        users_id(用户ID)    order_id(订单ID)   order_time(时间)
            1                     1               1483401600
            1                     2               1483488000
            2                     3               1483401600
            2                     4               1483488000
            1                     5               1486166400
            
  如何查表A 和表B得到以下数据

$item=array(
  array(
     'users_id'=>'1',
     'mission'=>'15',
     'count_order'=>'2',
     'date'=>'1483228800'
    ),
  array(

     'users_id'=>'2',
     'mission'=>'10',
     'count_order'=>'2',
     'date'=>'1483228800'

    ),
  array(
     'users_id'=>'1',
     'mission'=>'15',
     'count_order'=>'1',
     'date'=>'1483315200'

    )
    )



可以用一条SQL语句 把每个用户的每个月的任务数 和实际完成数查出来 吗?
表A的时间戳是每个月的第一天 表B的时间戳是固定的
users_id(用户名) mission(任务数) count_order(这个月完成的订单数) date(月份时间)            
阅读 2.6k
4 个回答
select a.user_id,mission,a.cc count_order,date from (select user_id,count(1) cc,DATE_FORMAT(FROM_UNIXTIME(order_time),'%Y-%m') odr_mn from order group by user_id, odr_mn) a join task b on a.user_id=b.user_id and a.odr_mn=DATE_FORMAT(FROM_UNIXTIME(b.date),'%Y-%m');
select a.user_id,a.mission,a.date, (select count(*)  from order b where a.user_id=b.user_id and DATE_FORMAT(FROM_UNIXTIME(a.date),'%Y-%m-%d') = DATE_FORMAT(FROM_UNIXTIME(b.order_time),'%Y-%m-%d')) count_order from task a;

select users_id,mission,date,count_order from task left join (select count(0) as count_order,users_id from order group by users_id ) as table1 on task.users_id = tabel1.users_id;
不知道可以不可以,不会sql

不要把问题全部包在代码块内.提问都不用心,个人感觉是看到我都不想回答~

推荐问题