Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/09/2015, 19:36
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta UNION ALL duplica registros

Cita:
lo que hace es listar primero todos los funcionarios ya que todos tienen departamento(cod_dep) y seguido me lista todos los funcionarios que tiene dependencia(cod_depen) duplicando los registros y me arroja 26 en total.
La duplicación de registros iguales en un UNION ALL es el resultado normal y esperado de esa forma de UNION.
Si quieres que los registros no se repitan, debes usar UNION, no UNION ALL.

Cita:
Lo que pasa es que tengo 15 usuarios en la tabla funcionario y 4 de ellos tienen el campo cod_depen en 0 ya que no pertenecen a ninguna dependencia. Estoy tratando de hacer una consulta donde me traiga todos los funcionarios tengan o no dependencia,
Pues para obtener esa lista, tal y como la describes, simplemente sería omitiendo la condicion sobre el COD_DEPEN, al menos si lo haces en una sola tabla.
Para hacerlo con un JOIN debes usar LEF>T JOIN.
Código MySQL:
Ver original
  1. SELECT F.cod_fun, F.nombres, F.apellidos, F.numdoc, F.cod_dep, D.cod_dep, D.dtalle_dep
  2. FROM  funcionario F LEF JOIN departamentos F ON F.cod_dep = D.cod_dep
  3. WHERE 1 OR D.cod_dep  IS NULL
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)