Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/01/2013, 06:40
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 con 2 Tablas

No estás relacionando al empleado con el departamento. Al menos no correctamente.
Cuando haces un JOIN implícito (la coma), la base de datos intenta emparejar aquellos campos que tienen el mismo nombre, pero en tu caso el campo "codigo" en empleados es el ID del empleado, mientras que "codigo" en Departamentos es el ID del departamento.
En definitiva está dando cualquier cosa.

En el JOIN tienes que explicitar qué campo de la primera lo cruzas con cuál de la segunda, o de lo contrario no tendrás resultados correctos.
Código MySQL:
Ver original
  1.     A.CODIGO,  
  2.     A.NOMBRE,  
  3.     A.LOCALIDAD
  4. FROM  
  5.     EMPLEADO A INNER JOIN DEPARTAMENTO D  ON A.codigo = D.CODIGO_EMPL_jefe
  6.     D.DEPARTAMENTO=IdBuscado;

Consejo: Nunca uses una palabra simple como ID, CODIGO, COD, NUMCOD o cosa semejante como nombre de un campo. Debes ponerle como refijo el nombre de la tabla, y usar ese mismo nombre para la FK que generes. Eso te facilitará realizar las consultas y entender cómo establecer las relaciones
Esto es, las tablas deberían tener esta forma:
Cita:
EMPLEADO(EMPL_CODIGO, EMPL_NOMBRE, EMPL_ LOCALIDAD)

DEPARTAMENTO(DPTO_CODIGO, EMPL_CODIGO, EMPL_CODIGO_JEFE)
Es una forma habitual de buenas practicas de desarrollo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)