如何避免JOIN中的重复行?

时间:2013-08-14 07:38:36

标签: sql tsql

我有两个相同的表(一个是2000-2009的数据,另一个是2000-2013的数据),我将两个表比较左边的Join和新的ID列并获得多对多的映射。

表结构(两者)

ID  Date  Result1  Result3  Result3 Result10

预期结果是

ID  new_Date Old_Date new_Result1 old_Result1 new_Result10  old_Result10

如何避免多对多关系?

ID  new_Date    Old_Date 
--  ----------  ----------
15  2005-05-04  2005-05-04 
15  2006-11-23  2005-05-04 
15  2005-05-04  2006-11-23 
15  2006-11-23  2006-11-23 

预期

ID  new_Date    Old_Date 
--  ----------  ----------
15  2005-05-04  2005-05-04 
15  2006-11-23  2006-11-23

2 个答案:

答案 0 :(得分:2)

你考虑过使用DISTINCT吗? 如:

SELECT DISTINCT id, name, lastName FROM Person

这将确保独特的结果。您也可以考虑对两个查询执行UNION,因为这也可以确保唯一性。 如:

SELECT DISTINCT id, name, lastName FROM Person
UNION    
SELECT DISTINCT id, name, lastName FROM Person2

答案 1 :(得分:0)

这样的事情:

SELECT A.ID, A.Date as new_Date, B.Date as Old_Date, (...)
FROM SomeTable1 as A
JOIN SomeTable2 as B ON A.ID=B.ID