Tengo una tabla que se ve algo como estofila de actualización con datos de otra fila en la misma mesa
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | |
4 | Test | |
1 | Test3 | VALUE3 |
Estoy buscando una manera de actualizar 'Prueba2' y los valores de 'Prueba' con los datos de otras filas en la columna 'VALOR' con el mismo 'NOMBRE' (la ID no es única aquí, una clave compuesta de ID y NAME hacen que una fila sea única). Por ejemplo, la salida que estoy buscando es:
ID | NAME | VALUE |
----------------------------
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
Si estaba en otra mesa estaría bien, pero estoy en una pérdida en cuanto a cómo puedo hacer referencia a una fila diferente dentro de la corriente tabla con el mismo valor de NAME
actualización
Después de modificar consulta Manji, a continuación es la consulta que utilicé para una solución de trabajo. ¡Gracias a todos!
UPDATE data_table dt1, data_table dt2
SET dt1.VALUE = dt2.VALUE
WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
Algo de un novato, pero estoy seguro que esto se podría hacer uso de tablas temporales. Seleccione los nombres donde el valor es nulo en una tabla temporal, luego llene los valores, luego llene esos valores nuevamente en la tabla original donde coincide el nombre. – bdares
¿Podría ser más específico en cómo toman datos de otras filas? En el ejemplo, parece que quieres dar a todos los que tienen el mismo NOMBRE el mismo VALOR, ¿es correcto? ¿Importa la identificación aquí? –
@Gustav, encontré una solución (ver abajo) pero sí, la intención es tener las mismas columnas del mismo nombre para tener el mismo valor. ID es irrelevante – slick