我有A表,sum(amount)=200
与 B表 inner join后 再sum(amount)就变成210多了
与 C表 用where 条件连接后 sum(amount)变成 205我擦 完全无语啊,我哪里错了啊?要怎样连接才能使A表的记录数不变化啊????

解决方案 »

  1.   

    按你的描述来看,inner join后的记录,肯定是有重复记录的,所以sum的值才会变多。
    你可以根据你的实际SQL,用DISTINCT或者EXISTS,把重复记录去掉。
    如果不会用上面两个关键字的话,可以把你的SQL贴来看看。帮你改造一下。
      

  2.   

    这样:
    select* from table1 , table2 
    where table1.col1 = table2.col1(+)
    这样就可以了
      

  3.   

    左连接实现  distinct 过滤掉重复记录
      

  4.   

    使用distinct 就行 去掉重复值 或者使用inner join  用on 限制条件 使其保持一致