Ver Mensaje Individual
  #6  
Antiguo 27-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Reputación: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por maeyanes Ver Mensaje
mmm por que va a quedar repetido?
Código SQL [-]
update ventas_new a set a.nombre = (select b.nombre from ventas_old b where b.id = a.id)

Bueno, fraccionemos el ejercicio un poco haciendo una especie de "prueba de escritorio"...

Por un lado tenemos

Código SQL [-]
update ventas_new a set a.nombre =

Esa parte de la consulta esta esperando un valor, que puede ser cualquiera, en nuestro caso es...

Código SQL [-]
(select b.nombre from ventas_old b where b.id = a.id)

- Ahora bien, si hacemos un ejercicio mental de quitar la subconsulta e imaginarnos que nos devuelve un valor cualquiera, por ejemplo "Jhonny", obtendriamos la siguiente consulta, (Que en ultimas es lo que haria cualquier motor, suponiendo que unicamente me devolvera un solo registro en todos los casos)...

Código SQL [-]
update ventas_new a set a.nombre = 'Jhonny'

Como podemos ver no hay una condición where donde le indique al motor cual es el registro para actualizar, de manera que los actualizara todos .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 27-11-2007 a las 23:32:37.
Responder Con Cita