当前位置: 代码迷 >> Sql Server >> 如何小弟我查询的时候老是查询出重复数据
  详细解决方案

如何小弟我查询的时候老是查询出重复数据

热度:7   发布时间:2016-04-27 12:04:52.0
怎么我查询的时候老是查询出重复数据?
表firesystype、devicetype、devices 
firesystype与devicetype一对多,devicetype与devices 一对多


 select firesystype.tiSysType,firesystype.vSysdesc from firesystype left join devicetype on firesystype.tiSysType=devicetype.tiSysType left join devices on devicetype.tiDeviceType=devices.tiDeviceType left join gateway on gateway.Gatewayaddress=devices.Gatewayaddress where gateway.orgid='201201020100009'

查询的结果:
129 火灾自动报警系统
129 火灾自动报警系统
22 消防应急照明和疏散指示系统
135 灭火器
22 消防应急照明和疏散指示系统
129 火灾自动报警系统
22 消防应急照明和疏散指示系统
135 灭火器
。。。。。。。。。。。。。。。。。。。。。。。。。。。。都重复了、

------解决方案--------------------
SQL code
--加 distinct 过滤掉重复的select distinct firesystype.tiSysType,firesystype.vSysdesc from firesystype left join devicetype on firesystype.tiSysType=devicetype.tiSysType left join devices on devicetype.tiDeviceType=devices.tiDeviceType left join gateway on gateway.Gatewayaddress=devices.Gatewayaddress where gateway.orgid='201201020100009'
------解决方案--------------------
firesystype left join devicetype on firesystype.tiSysType=devicetype.tiSysType 
left join devices on devicetype.tiDeviceType=devices.tiDeviceType 
left join gateway on gateway.Gatewayaddress=devices.Gatewayaddress

在于这里,四个表,按照关联条件查出来的数据应该有重复的,就是说其中有可能存在 一对多 的情况
  相关解决方案