原来语句是这样的,出现一个问题就,是当执行后语句select * from  a 
left  join  b on a.a=b.a 后,我发现b.a中的数据有重复,有时有两条或三条,这2-3条数据只有一个字段是重复的,有时需要重复结果,有时不需重复结果,那么最后执行的结果是选b表中那一条数据和a表联合,有什么办法可以避免吗?不需要重新清理数据库赛,请高手指点,谢谢了!

解决方案 »

  1.   

    A表:
    ha      dhm      rq          sj             sc
    13705431574 15128152676 2010-04-01 20:48:32     412
    13705431574 0871669977 2010-04-01 03:10:49     20
    13705431574 15883217969 2010-04-01 14:34:15     118B表:
    hd           gsd
    1512815      河北石家庄移动
    1512815      河北石家庄
    1588321      四川资阳移动
    C表:
    hm                 jz          dz
    15128152676        aa         ab
    15883217969        bb         bc
    0871669977         cc         cc
    0871669977         cc         ccd
    15883217969        bc         bbcselect * 
    from a  
    left join b on
     substr(hm,1,7)=b.hd
    left join C on
    c.hm=a..hm
    最后发现有重复数据不需要重复的我准备把B表整理数据库,消掉重复的数据,这样可以避免重复
    最后需要得到的表是这个格式:
    Hm      dhm       gsd      jz    dz        rq          sj        sc