求个取法:
SELECT s.cID, count( s.cID) AS click_num, c.Name FROM s, c WHERE s.cID = c.cID  GROUP BY s.cID ORDER BY click_num DESC以上取出结果是这样的:记录ID    点击数        被点击标题 cID     click_num        Name  13           2           新闻标题一 
750          1            新闻标题XXX 
16           1           其它标题.... 
1            1            新闻九九九 
19           1           新闻世家一草一木c表各条记录被点击一次,就在S_1表里插一条记录(记下点击时间,IP,被点击记录的cID),在一定程度下S_1表就停止被插入记录,就会往S_2表里插入记录......以前是表s与表c发生关系,现在又有表(s_1,s_2...)个表要与c联取。要取得以上结果,应该怎么取?  万分感谢!

解决方案 »

  1.   


    供参考:
    select cID,sum(click_num) as click_num,name from (
    (select c.cID,count(c.cID) as click_num,c.name from c left join s_1 as s on s.cID=c.cID where s.cID is not null group by c.cID )
    union all
    (select c.cID,count(c.cID) as click_num,c.name  from c left join s_2 as s on s.cID=c.cID where s.cID is not null group by s.cID) 
    ) as j group by j.cID order by j.click_num desc
      

  2.   

    六道之纹,你好! 很感谢! 你的结果非常正确.刚才我把表名C没改成我库里真正的名字.感谢感谢!我给你加分呀因为表空间有限,而且数据将来会很多,所以必须要分表实现.表Sn是用CREATE TABLE..... 新创建的表,每月底把旧表重命名,然后再创建一个原来的表名,包括结构....
      

  3.   

    这个方法是挺笨的..而且如果你建了几张Sn表就要在语句中间加上几条语句好的办法应该有吧,就像你在月底把这个月表的统计的总和放在一张统计表T中,下次只要统计当月的这张表,然后加上T中的数字就是总点击数了
      

  4.   

    最后的结果,让以后网友需要时可以参考SELECT s.cID, count( s.cID ) AS click_num, c.Name 
    FROM ( 
    select * from s1 union all select * from s2 union all .. .. .. select * from sn 

    as s, c WHERE s.cID = c.cID GROUP BY s.cID ORDER BY click_num DESC