表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 排序不正确 请问该如何解决?
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
上图三个表我需要查出表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.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