Cita:
Empezado por maeyanes
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
.