huesos52 y demás amigos,
tu explicación es convincente, al menos para mí. Pero sigo con el hilo un poco más. Si te soy sincero, a mí lo que me sabe raro de tu consulta es el having COUNT(*) > 0, cuya función es, creo, poder evitar el NULL y hacer el INNER JOIN, lo que permite una consulta más rápida. Y aquí va mi otra cuestión: ¿una consulta con WHERE sería más o menos eficiente que el uso de HAVING, teniendo en cuenta que el distinct es como el group by...? Lo explicaré con el ejemplo de la que yo tengo en mente:
Código sql:
Ver originalSELECT Doc, Nombre FROM tabla INNER JOIN (SELECT DISTINCT Jefe
FROM tabla WHERE Jefe IS NOT NULL)T1 ON tabla.Doc = T1.Jefe
Una vez más, gracias.