Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/06/2013, 16:02
Bier
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Mostrar registros no correspondidos

Hola leonardo_josue,

Gracias por tus comentarios.
1.- Respecto a los campos de las tablas, en la consulta que puse se aprecian, lo mostraré de otra forma, espero sea más clara.

2.- Puse un ejemplo lo más simple posible, solo 2 tablas y un campo en cada tabla.

3.- Es solo un supuesto de tablas, y lo que busco es la respuesta a la pregunta planteada, no tanto si mi aplicación ha sido correctamente diseñada.

4.- En mi caso real, se trata de un catálogo de artículos y deseo saber ha tenido, o no, movimientos registrados, ya que puedo tener artículos en el catálogo y no necesariamente tener movimientos.

Tabla de empleados:
Código MySQL:
Ver original
  1. idEmpleado int(3)
  2. id_departamento int(3)
  3. Nombre char(30)

Tabla de departamentos:
Código MySQL:
Ver original
  1. idDepartamento int(3)
  2. Nombre char(30)

Mi pregunta es:
¿Como puede ser una instrucción para mostrar solo empleados que no tienen asignado departamento?

PS: No veo necesario explicar mi aplicación, solo saber como puede ser una instrucción para ello. Lo puedo resolver con dos instrucciones, pero deseo saber si es posible resolverlo con una sola.

Gracias nuevamente.





Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola Bier:

No nos dices cuál es la estructura de tus tablas por lo que resulta algo complicado ayudarte...

Jugando un poco al adivino, puedo suponer que el campo id_departamento de tu tabla empleados hace referencia al departamento asignado... aquí habría que preguntar, si es una llave foranea, entonces NO HAY MANERA QUE EL EMPLEADO NO TENGA ASIGNADO UN DEPARTAMENTO... ahora bien, si el campo NO ES LLAVE FORÁNEA y puede tener valores nulos, o valores que no existan en tu tabla DEPARTAMENTOS, entonces el problema es que TIENES UN TERRIBLE MODELO DE BASE DE DATOS.

Uno de mis maestros me dijo hace tiempo: Una Base de Datos sin Integridad Referencial es simplemente un montón de basura almacenada en tablas... así de claro.

Dime, cuál es la lógica acerca de la asignación de departamento a los usuarios.

- ¿Un usuario puede o no puede tener asignado un departamento?. Si la respuesta es sí, entonces el campo ID_DEPARTAMENTO NO DEBE EXISTIR EN LA TABLA DE EMPLEADOS... deberías tener una tabla intermedia donde agregues sólo aquellos empleados que tienen asignado un departamento.

- ¿Un usuario debe tener asignado siempre un departamento?. Si la respuesta es si, entonces el modelo es correcto, pero entonces tu pregunta es un completo absurdo.

- ¿Es posible que existan departamentos sin empleados asignados? Si, es posible y eso no afectaría para nada el modelo actual o si agregaras una nueva tabla.

Explica un poco mejor cómo tienes tu información y cuál es la lógica de tu negocio y con gusto tratamos de ayudarte.

Saludos
Leo.