我现在需要在海量数据里查看没有出现的数据,比如我有两个很大的表,表A里有完整的数据,表B里有部分数据缺失,现在需要对比表A和表B找出表B中哪些数据没有。为说明情景,现在模拟这么一个情景,我是买双色球的,我现在手上有很多客户买的号码组合,现在我需要一个算法,来看一下所有用户中,哪个号码组合没买,以及有多少个中一等奖,双色球规则:1-33之间选择6个号码作为红色球,1-16之间选择一个号码作为蓝色球,只有全部号码吻合才是一等奖。    也就是全部的17721088种组合(不知道算准没,百度来的)数据的筛选
请教各位高手给个思路,谢谢!

解决方案 »

  1.   


    SELECT * FROM A WHERE A.ID NOT IN (SELECT ID FROM B)楼主莫非要这个?但是如果是几十万级的数据,这种方法查询会比较慢的。
      

  2.   

    I think you should loop all the data
      

  3.   

    通过linq 实现datatable的差集 
    DataTable dt1= query1.CopyToDataTable();
    DataTable dt2= query2.CopyToDataTable();var q= dt1.AsEnumerable().Except(dt2.AsEnumerable(),
                                                   DataRowComparer.Default);
      

  4.   

    SELECT * FROM A WHERE A.ID NOT IN (SELECT ID FROM B)