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

ayuda por favor con sentencia

Estas en el tema de ayuda por favor con sentencia en el foro de Mysql en Foros del Web. primero gracias por la ayuda. problema: tengo 2 tablas, necesito pasar el valor de un campo fecha de la tabla 1 a un campo fecha ...
  #1 (permalink)  
Antiguo 28/04/2009, 20:05
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
ayuda por favor con sentencia

primero gracias por la ayuda.

problema: tengo 2 tablas, necesito pasar el valor de un campo fecha de la tabla 1 a un campo fecha de la tabla 2 mientras que uno de los campos de la tabla 1 sea diferente a "X" (un valor definido X), ambas tablas tienen un campo id (no indexado) y un campo folio indexado en comun


mi idea:

update tabla1,tabla2 set fecha_2=tabla1.fecha_1 where tabla1.campox!='X'

es correcto?


muchas gracias
  #2 (permalink)  
Antiguo 28/04/2009, 23:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ayuda por favor con sentencia

Prueba con algo así:

Código sql:
Ver original
  1. UPDATE tabla1 INNER JOIN tabla2 ON tabla1.folio = tabla2.folio SET tabla2.fecha_2=tabla1.fecha_1 WHERE tabla1.campox !='X'
  #3 (permalink)  
Antiguo 29/04/2009, 10:29
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: ayuda por favor con sentencia

hola, no entiendo mucho tu sentencia, por favor podrias explicarme por que no funcionaria la mia y por que la tuya si? gracias solo por aprender.
  #4 (permalink)  
Antiguo 29/04/2009, 10:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda por favor con sentencia

A tu consulta le falta algo muy importante, y es establecer la relación entre las dos tablas, para que no haga una update incontrolable con esa única condición.

quedaría así:
update tabla1,tabla2 set fecha_2=tabla1.fecha_1 where
tabla1.folio = tabla2.folio and tabla1.campox!='X'


Sin embargo, la solución que te propone jurena es mucho mejor en rendimiento y elegancia en el manejo de los datos.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 29/04/2009, 11:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ayuda por favor con sentencia

Es lo que te dice huesos52.
El cruce mediante inner join hace más claro el código y permite reservar el where para la restricción concreta. Eso deja al programa hacer uso de los índices para el cruce, con lo que todo va más rápido.
  #6 (permalink)  
Antiguo 29/04/2009, 11:41
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: ayuda por favor con sentencia

oh, muchas gracias
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 01:00.