SELECT a.*,count(b.id) as counter,sum(b.grade) as grade FROM jacksoft_search_data a LEFT JOIN jacksoft_search_vote b ON a.id=b.dataID GROUP BY b.dataID WHERE a.state = 1 ORDER BY a.id 
试过了,不对头A表为信息记录
B表为投票记录AB表关联a.id b.dataID实现为A表里的记录统计分数

解决方案 »

  1.   


       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    语法不对SELECT a.id,count(b.id) as counter,sum(b.grade) as grade 
    FROM jacksoft_search_data a LEFT JOIN jacksoft_search_vote b ON a.id=b.dataID 
    GROUP BY b.dataID 
    WHERE a.state = 1 
    ORDER BY a.id  
      

  3.   


    -- where条件放group前面
    SELECT a.*,count(b.id) as counter,sum(b.grade) as grade 
    FROM jacksoft_search_data a LEFT JOIN jacksoft_search_vote b ON a.id=b.dataID 
    WHERE a.state = 1 
    GROUP BY b.dataID 
    ORDER BY a.id  
      

  4.   

    SELECT a.*,count(b.id) as counter,sum(b.grade) as grade FROM jacksoft_search_data a LEFT JOIN jacksoft_search_vote b ON a.id=b.dataID WHERE a.state = 1 GROUP BY b.dataID  ORDER BY a.id