2010-10-05 4 views
0

exmaple:requête mySQL trouver en double rangée

[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 

Dans ce tableau, je dois obtenir empid 1 output..since il a BookID 8 plus d'une fois ..

merci à l'avance. .

+0

Etes-vous sûr de ne pas vouloir grouper par 'empid',' bookid', ET 'date'? Le sens de la date pourrait être important. – vol7ron

Répondre

3

Vous pouvez utiliser:

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

Mais cela vous donnera des doublons. Si, par exemple, vous avez 1-8,1-8,1-9,1-9, vous obtiendrez 1,1 en sortie car Empid 1 a des bookid's en double pour deux valeurs bookid distinctes. Vous devrez utiliser SELECT DISTINCT pour filtrer le doublon empid.

+0

Alin Purcaru, Merci pour votre ans..query fonctionne correctement si j'ajoute distinct .. SELECT DISTINCT id de la table GROUP BY empid, bookid COMPTANT (*)> 1 – anand

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

vous sélectionnez empid qui a plusieurs bookid distincts, la question demande empid avec le même bookid plus d'une fois. votre requête produirait 1 et 2, pas seulement 1. –

Questions connexes