日期:2014-05-17  浏览次数:21279 次

SQL inner join去重复
使用inner join后产生一对多 如何才能去掉一对多产生的重复数据
tDepartment:
1 HDB-001 混蛋部
2 HDB-002 草泥马部
3 HDB-003 神马部
tCompanyEmployee:
1 1 HD-001 混蛋1号 男
2 1 HD-002 混蛋2号 男
3 2 HD-003 草泥马1号 男
4 3 HD-004 神马1号 男
5 3 HD-005 神马2号 男
tEmployee:
1 1 1 admin admin
2 2 1 admin2 admin2
3 3 2 admin3 admin3
4 4 3 admin4 admin4
5 5 3 admin5 admin5
语句:
select distinct 
[tEmployee].[EmpName]as'User',[tEmployee].[EmpPassword], 
[tDepartment].[DeptId],[tDepartment].[DeptName],[tDepartment].[DeptNO],
[tCompanyEmployee].[EmpName],[tCompanyEmployee].[EmpNO],[tCompanyEmployee].[Sex]
from [tEmployee]
inner join
(
[tDepartment] inner join [tCompanyEmployee] 
on [tDepartment].[DeptID]=[tCompanyEmployee].[DeptID] 
)
on [tEmployee].[DeptID]=[tDepartment].[DeptID] and [tEmployee].[DeptID]=[tCompanyEmployee].[DeptID]
结果:
admin admin 1 混蛋部 HDB-001 混蛋1号 HD-001 男
admin admin 1 混蛋部 HDB-001 混蛋2号 HD-002 男
admin2 admin2 1 混蛋部 HDB-001 混蛋1号 HD-001 男
admin2 admin2 1 混蛋部 HDB-001 混蛋2号 HD-002 男
admin3 admin3 2 草泥马部 HDB-002 草泥马1号 HD-003 男
admin4 admin4 3 神马部 HDB-003 神马1号 HD-004 男
admin4 admin4 3 神马部 HDB-003 神马2号 HD-005 男
admin5 admin5 3 神马部 HDB-003 神马1号 HD-004 男
admin5 admin5 3 神马部 HDB-003 神马2号 HD-005 男

------解决方案--------------------
SELECT distinct * from table
查询后面加上distinct 去除重复数据
------解决方案--------------------

select distinct  
[tEmployee].[EmpName]as'User',[tEmployee].[EmpPassword],  
[tDepartment].[DeptId],[tDepartment].[DeptName],[tDepartment].[DeptNO],
[tCompanyEmployee].[EmpName],[tCompanyEmployee].[EmpNO],[tCompanyEmployee].[Sex]
from [tEmployee]
inner join [tDepartment] on [tEmployee].[DeptID]=[tDepartment].[DeptID]  inner join [tCompanyEmployee] on [tEmployee].[DeptID]=[tCompanyEmployee].[DeptID]

------解决方案--------------------


select distinct   * from

(

select 
[tEmployee].[EmpName]as'User',[tEmployee].[EmpPassword],  
[tDepartment].[DeptId],[tDepartment].[DeptName],[tDepartment].[DeptNO],
[tCompanyEmployee].[EmpName],[tCompanyEmployee].[EmpNO],[tCompanyEmployee].[Sex]
from [tEmployee]
inner join [tDepartment] on [tEmployee].[DeptID]=[tDepartment].[DeptID]  inner join [tCompanyEmployee] on [tEmployee].[DeptID]=[tCompanyEmployee].[DeptID]


)