表就不需要列出来了,我把我的SQL跟结果晒出来:
SELECT C.COMPANY_NAME,C.REPRESENTATIVE,C.REGISTERED_CAPITAL FROM COMPANY_T C
LEFT JOIN Managed_Service_Provider M ON C.COMPANY_ID=M.COMPANY_ID
LEFT JOIN TELCOM_CARRIER T ON M.CARRIER_ID=T.CARRIER_ID
WHERE M.CARRIER_ID='100079'结果:
    COMPANY_NAME REPRESENTATIVE REGISTERED_CAPITAL
1 山西晋通邮电实业有限公司 贺建兵 伍仟万元
2 山西晋通邮电实业有限公司 贺建兵 伍仟万元
3 山西晋通邮电实业有限公司 贺建兵 伍仟万元
4 山西光远技术有限公司 张晓军 贰仟万元
5 山西众至诚通信传输有限公司 刘占国 贰仟万元
6 太原市天地新通信有限公司 吕建民 贰佰万元前三排明显数据重复的!!求解。。在线等!~先午休下去。。

解决方案 »

  1.   

    看样子COMPANY_T是主表,
    Managed_Service_Provider和TELCOM_CARRIER分别是子表和孙表。
    中间肯定是1:M的关系,
    所以在Select出来的结果,就是多条了呗。最简单,也是最不负责的做法是在select后面加distinct,要么,仔细研究业务,写成正确的SQL。
      

  2.   

    没见着group by 语句啊……这种直接distinct
      

  3.   

    直接distinct效率太低,还是找出那张表又重复吧!
      

  4.   

    COMPANY_T或者Managed_Service_Provider  存在重复数据
    问题在于表没有主键或者主键由多个列组成
      

  5.   

    应该是表COMPANY_T有重复数据  LZ可以先查看下 已这表为主表连接 还能重复 应该是这问题吧  或者是条件不够严谨导致重复
      

  6.   

    你本身数据就有这样的重复,所以我觉得你在查询的时候应该添加条件过滤重复的记录。sql不严谨。
      

  7.   

    已解决重复问题,就是很不负责的加了distinct
    SQL功底还真拿不出来改天恶补一下。。