Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

consulta mysql

Estas en el tema de consulta mysql en el foro de Bases de Datos General en Foros del Web. hola buen dia tengo una pregunta haber si me pueden ayudar tengo 2 tablas empleados y historial la tabla empleados es donde tengo todos los ...
  #1 (permalink)  
Antiguo 22/06/2009, 12:20
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 10 meses
Puntos: 5
De acuerdo consulta mysql

hola buen dia tengo una pregunta haber si me pueden ayudar

tengo 2 tablas empleados y historial

la tabla empleados es donde tengo todos los empleados
y la de historial son los empleados dados de baja
esta relacioados con ID

ejemplo se tengo un empleado y lo doy de baja se pasa a historial y se borra de empleados

a hora mi pregunta

como puedo hacer una consulta que me busque en las 2 tablas si existe en la tabla empleados que haga lo que me me arroje los resultados que quiera yo si no existe que busque en la de historial y me arroje los resultados que yo quiera


todo esto en una consulta se puede???

gracias por su ayuda
  #2 (permalink)  
Antiguo 22/06/2009, 22:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: consulta mysql

Yo creo que lo mejor es hacer la comparación desde el enguaje de programación. Son dos consultas totalmente diferentes.
Otra solución podría ser, sentencias preparadas para hacerlo desde mysql.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 23/06/2009, 05:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: consulta mysql

Para haerlo desde MySQL tienes dos opciones:
1. Crear la búsqueda en un stored procedure, ya que tienes que realizar una acción primero y otra después, como si fueran una sola... cosa que solamente lograrás con SP.
2. Si las tablas son idénticas en cantidad de campos y sus tipos, puedes hacer un UNION en una subconsulta de modo de crear una sola tabla virtual, y hacer un SELECT de esa subconsulta para buscar el empleado.

En cualquiera de los dos casos puedes incorporar una columna que te indique "ACTIVO" o "NO ACTIVO".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 23/06/2009, 06:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: consulta mysql

Se puede hacer con una única consulta sql de la siguiente manera:

select * from empleados where id = 32
union
select * from historial where id = 32 and (select count(*) from empleados = 0)


Un saludo,
  #5 (permalink)  
Antiguo 23/06/2009, 06:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: consulta mysql

Me equivoqué en la ultima select de la respuesta anterior, esta si es la buena:

select * from empleados where id = 32
union
select * from historial where id = 32 and (select count(*) from empleados where id = 32) = 0


Un saludo,
  #6 (permalink)  
Antiguo 23/06/2009, 11:52
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 10 meses
Puntos: 5
Respuesta: consulta mysql

gracias a todos los soluciones con uniones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:24.