当前位置: 代码迷 >> Oracle管理 >> 一SQL。为什么小弟我写的三表连接中会有重复数据?GROUP BY是不行的。
  详细解决方案

一SQL。为什么小弟我写的三表连接中会有重复数据?GROUP BY是不行的。

热度:50   发布时间:2016-04-24 05:29:34.0
求助一SQL。。为什么我写的三表连接中会有重复数据?GROUP BY是不行的。。
表就不需要列出来了,我把我的SQL跟结果晒出来:

SQL code
SELECT C.COMPANY_NAME,C.REPRESENTATIVE,C.REGISTERED_CAPITAL FROM COMPANY_T CLEFT JOIN Managed_Service_Provider M ON C.COMPANY_ID=M.COMPANY_IDLEFT JOIN TELCOM_CARRIER T ON M.CARRIER_ID=T.CARRIER_IDWHERE M.CARRIER_ID='100079'



结果:
  COMPANY_NAME REPRESENTATIVE REGISTERED_CAPITAL
1 山西晋通邮电实业有限公司 贺建兵 伍仟万元
2 山西晋通邮电实业有限公司 贺建兵 伍仟万元
3 山西晋通邮电实业有限公司 贺建兵 伍仟万元
4 山西光远技术有限公司 张晓军 贰仟万元
5 山西众至诚通信传输有限公司 刘占国 贰仟万元
6 太原市天地新通信有限公司 吕建民 贰佰万元

前三排明显数据重复的!!求解。。在线等!~先午休下去。。


------解决方案--------------------
看样子COMPANY_T是主表,
Managed_Service_Provider和TELCOM_CARRIER分别是子表和孙表。
中间肯定是1:M的关系,
所以在Select出来的结果,就是多条了呗。

最简单,也是最不负责的做法是在select后面加distinct,

要么,仔细研究业务,写成正确的SQL。
------解决方案--------------------
没见着group by 语句啊……

这种直接distinct
------解决方案--------------------
直接distinct效率太低,还是找出那张表又重复吧!
------解决方案--------------------
COMPANY_T或者Managed_Service_Provider 存在重复数据
问题在于表没有主键或者主键由多个列组成
------解决方案--------------------
应该是表COMPANY_T有重复数据 LZ可以先查看下 已这表为主表连接 还能重复 应该是这问题吧 或者是条件不够严谨导致重复
------解决方案--------------------
你本身数据就有这样的重复,所以我觉得你在查询的时候应该添加条件过滤重复的记录。sql不严谨。
  相关解决方案