解决方案 »

  1.   

    表1表2表3
    上图三个表我需要查出表2中所有的name,并列出name属于表1中的账号和用户名(通过uid关联),同时计算出表3中属于表2中name的点击数clicks(通过表2的id和表3的websiteid关联)
    我的SQL语句为SELECT ac_portalcfg.id,ac_portalcfg.name,ac_user.uname,ac_user.account,
    if(sum(ac_advclicks.clicks),sum(ac_advclicks.clicks),'0') as clicks 
    FROM `ac_user`,`ac_portalcfg` 
    LEFT JOIN ac_advclicks ON (ac_portalcfg.id = ac_advclicks.websiteid)
    WHERE ( ac_portalcfg.uid = ac_user.uid )
    GROUP BY ac_portalcfg.id 
    ORDER BY clicks desc LIMIT 0,20查询结果如图
    问题是ORDER BY clicks 排序不正确
    请问该如何解决?
      

  2.   

    1.  if(sum(ac_advclicks.clicks),sum(ac_advclicks.clicks),'0') if的条件是什么?
    2.if(sum(ac_advclicks.clicks),sum(ac_advclicks.clicks),'0')   0为什么要加'单引号?
    3.个人觉得if(sum(ac_advclicks.clicks),sum(ac_advclicks.clicks),'0') as clicks 完成没有必要,在建表时默认ac_advclicks.clicks值为0,sum(ac_advclicks.clicks) as clicks