2010-10-05 97 views
0

〔实施例:MySQL查询找到重复的行

[empid date  bookid] 
---------- 
1  5/6/2004 8 

2  5/6/2004 8 

1  5/7/2004 8 

1  5/8/2004 6 

3  5/8/2004 8 

2  5/8/2004 7 

在此表中,我需要得到EMPID 1为output..since它BOOKID不止一次8更多..

在此先感谢。 。

+0

你确定你不想通过'empid','bookid'和'date'进行分组吗?日期的含义可能很重要。 – vol7ron 2010-10-06 01:14:35

回答

3

您可以使用:

SELECT DISTINCT id 
FROM table 
GROUP BY empid, bookid 
HAVING COUNT(*) > 1 

但它会给你重复。例如,如果您有1-8,1-8,1-9,1-9,您将得到1,1作为输出,因为empid 1对于两个不同的bookid值具有重复的bookid。您将需要使用SELECT DISTINCT来过滤出重复的empid。

+0

Alin Purcaru,谢谢你的ans..query工作正确,如果我添加不同的.. SELECT DISTINCT ID FROM表GROUP BY empid,bookid HAVING COUNT(*)> 1 – anand 2010-10-06 01:09:54

0
SELECT empid 
from table 
group by empid 
having Count(distinct bookid) > 1 
+0

您选择拥有多个不同bookid的empid,该问题不止一次地要求同一个bookid的empid。你的查询会输出1和2,而不仅仅是1. – 2010-10-05 09:20:38