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

saber datos diferentes entre 2 tablas iguales

Estas en el tema de saber datos diferentes entre 2 tablas iguales en el foro de Mysql en Foros del Web. Saludos. Tengo dos tablas, la primera: Tabla:Empleado Campos:idEmpleado,nombre,apellido,telefono,direcci on la segunda Tabla:EmpleadoLog Campos:idEmpleado,nombre,apellido,telefono,direcci on La segunda tabla cuando se hace un update sobre la primera ...
  #1 (permalink)  
Antiguo 28/06/2012, 15:56
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
saber datos diferentes entre 2 tablas iguales

Saludos.

Tengo dos tablas, la primera:

Tabla:Empleado
Campos:idEmpleado,nombre,apellido,telefono,direcci on

la segunda

Tabla:EmpleadoLog
Campos:idEmpleado,nombre,apellido,telefono,direcci on

La segunda tabla cuando se hace un update sobre la primera , inserta todos los datos que estaban en la primera antes del update.

Asi por ejemplo :
cambie el nombre: genere un insert en EmpleadoLog
cambie el apellido:genere un insert en EmpleadoLog
cambie el telefono:genere un insert en EmpleadoLog

mi pregunta es ¿como puedo conocer los campos que fueron cambiados?
se puede realizar algun tipo de consulta donde me arroje:

campo -- valor anterior --valor posterior
nombre,julian, juan

de antemano gracias
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #2 (permalink)  
Antiguo 29/06/2012, 04:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: saber datos diferentes entre 2 tablas iguales

Código MySQL:
Ver original
  1. SELECT e.idEmpleado,
  2. e.nombre,
  3. e.apellido,
  4. if(e.nombre<>elog.nombre,elog.nombre,"") nombreAnt,
  5. if(e.apellido<>elog.apellido,elog.apellido,"") apellidoAnt,
  6. e.telefono,
  7. if(e.telefono<>elog.telefono,elog.telefono,"") telefonoAnt,
  8. e.direccion,
  9. if(e.direccion<>elog.direccion,elog.direccion,"") direccionAnt
  10. FROM Empleado e INNER JOIN EmpleadoLog elog
  11. ON e.idEmpleado=elog.idEmpleado
  12. WHERE e.nombre<>elog.nombre OR
  13. e.apellido<>elog.apellido OR
  14. e.telefono<>elog.telefono OR
  15. e.direccion<>elog.direccion;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 29/06/2012 a las 04:20

Etiquetas: iguales, tabla, tablas, tipo, campos
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




La zona horaria es GMT -6. Ahora son las 10:44.