a表里面有userid 字段 ,b表里面也有userid 字段!我现在要查询出 每个userid 在a 和b 表中的记录数! 怎么写SQL ? 
结果要为userid | count(a.id) | count(b.id)! 求教啊

解决方案 »

  1.   

    select userid ,count(*),
    (select count(*) from b表 where userid=a表.userid)
    from a表
    group by userid
      

  2.   

    select a.userid,
              a.sl,
              b.sl
    from
    (select userid,count(*)sl from ta group by user_id)a
    inner join 
    (select userid,count(*)sl from tb group by user_id)b
    on a.userid=b.userid至于用inner 还是left 还是full自己根据实际情况
      

  3.   

    select userid,count(a2.userid),count(b2.userid) from (
    select userid  from a表
    union 
    select userid  from b表) a1
    left join a a2 on a1.userid=a2.userid
    left join b b2 on a1.userid=b2.userid
     group by a1.userid
      

  4.   

    这行!  还有个问题 就是 order by (count1+count2) 不行  分组不能这么写么?