采用PHP+MYSQL 
表 company 
userid  name  status 
1        天才    1 
2        英雄    1 
3        鬼才    0 表 dp 
gid  userid  sort1  sort2 
1      1        4      3 
2      2        2      3 
3      2        2      1 
4      2        3      2 
5      2        3      2 列出  status=1 的情况下表company中的数据并计算表dp中userid值相同的sort1和sort2的平均值 
name  avgsort1  avgsort2 
天才    4          3 
英雄    2.5        2 请教高手用SQL语句怎样实现啊???

解决方案 »

  1.   

    SELECT a.userid,a.name,avg(b.sort1),avg(b.sort2)
    from company a left join dp b 
    on a.userid=b.userid 
    where a.status=1
    group by a.userid,a.name
      

  2.   

    SELECT c.*,AVG(d.sort1) avgsort1,AVG(d.sort2) avgsort2
    FROM company c,dp d
    WHERE c.userid=d.userid AND c.status=1
    GROUP BY c.userid;
      

  3.   

    select name,avg(sort1) as avgsort1,avg(sort2) as avgsort1
    from company c inner join dp d using (userid)
    where status=1
    group by name
      

  4.   

    SELECT name,AVG(sort1),AVG(sort2)
    FROM `t_company` c
      LEFT JOIN `t_dp` d ON c.`userid`=d.`userid`
    WHERE `status`=1
    GROUP BY name