使用sql连接在列中查找重复项

时间:2013-12-03 17:39:41

标签: sql-server-2008 join duplicates

其实我之前发过这个问题。但没有得到一个很好的解决方案,所以我删除了旧的。我在这里再次发布它。

请看看我的桌子。在dateofbirth领域有2对类似的dateofbirth。

  

http://s24.postimg.org/cejm8ocqd/ello.jpg

现在问题是'我怎样才能归还同一天出生的学生的名字'。

当我发布这个问题时,我通过使用分区得到了一个解决方案,我的一个朋友告诉我他认为可以使用连接。我想知道是否可以使用'SQL JOINS'然后使用哪个连接(自连接?),为什么使用它,以及对你编写的代码的一个很好的解释。我的意思是解释每一行,因为我是sql的初学者,所以我可以很容易地理解它。

我不想要复杂的解释或代码,我想要最简单的基本方法。我想从基础知识中学习它。

1 个答案:

答案 0 :(得分:1)

对我来说,一个简单的方法如下:

SELECT * 
FROM Students
INNER JOIN 
         (SELECT stu_dateofbirth 
          FROM Students 
          GROUP BY stu_dateofbirth 
HAVING Count(stu_dateofbirth 
         ) > 1) AS DateOfBirths
ON Students.stu_dateofbirth = DateOfBirths.stu_dateofbirth 

加入是在一个选择语句中,该语句可以获得出现多次的出生日期,然后将其加入主表出生日期列,以检索所有符合出生日期的学生。

有很多方法,但上面使用连接来实现它,所以希望有帮助