2010-11-22 11 views
15

Aquí está mi consulta. Selecciona una lista de identificadores de dos tablas en dos bases de datos. La consulta funciona bien.MySQL: Seleccione filas con más de una ocurrencia

select en.id, fp.blogid 
from french.blog_pics fp, french.blog_news fn, english.blog_news en 
where fp.blogid = fn.id 
and en.title_fr = fn.title 
and fp.title != '' 

sólo quiero mostrar filas en las que un en.id aparece más de una vez

Así, por ejemplo, si éste era el resultado de la consulta actual

en.id fp.blogid 
--------------- 
    10  12 
    12  8 
    17  9 
    12  8 

sólo desea consultar mostrar esta en su lugar

en.id fp.blogid occurrences 
----------------------------- 
    12  8   2 

Respuesta

37
select en.id, fp.blogid, count(*) as occurrences 
from french.blog_pics fp, french.blog_news fn, english.blog_news en 
where fp.blogid = fn.id 
and en.title_fr = fn.title 
and fp.title != '' 
group by en.id 
having count(*) > 1 
+1

Eso funciona perfectamente. ¡Increíble! – HyderA

+4

¡Impresionante, justo lo que necesitaba casi 5 años después! Love Stack! –

-5

Utilice DISTINCT para evitar múltiples Ocurrencia

+0

DISTINCT devuelve al menos 1 resultado. No quiero un resultado a menos que haya al menos 2 ocurrencias. – HyderA

+0

SELECCIONE DISTRITO (en.id) como identidad de alguna tabla en donde identidad> 1 –

+1

identidad = valor de en.id – HyderA

Cuestiones relacionadas