Actualización de filas con datos de hermanos de la misma tabla
Imagine una tabla con una estructura similar esto:
ID | NOMBRE | VALOR |
---|---|---|
1 | Prueba | VALOR1 |
2 | Prueba2 | VALOR2 |
1 | Prueba2 | NULL |
4 | Prueba | NULL |
1 | Prueba3 | VALUE3 |
Su La tarea es completar las celdas NULL "VALUE" con datos de otras filas que llevan el mismo "NOMBRE" (es decir, "Prueba" y "Prueba2" deben heredar valores de sus predecesores). El resultado deseado es:
ID | NOMBRE | VALOR |
---|---|---|
1 | Prueba | VALOR1 |
2 | Prueba2 | VALOR2 |
1 | Prueba2 | VALOR2 |
4 | Prueba | VALOR1 |
1 | Prueba3 | VALOR3 |
UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE FROM data_table WHERE VALUE IS NOT NULL AND VALUE != '') t1 SET t.VALUE = t1.VALUE WHERE t.ID = t1.ID AND t.NAME = t1.NAMEUPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE DE tabla_datos DONDE EL VALOR NO ES NULO Y VALOR != '') t1 ESTABLECER t.VALOR = t1.VALOR DONDE t.ID = t1.ID AND t.NAME = t1.NAMEEn esta declaración, la subconsulta (T1) extrae filas distintas con valores "VALUE" no NULL y no vacíos. La consulta principal (t) luego se une a esta subconsulta en los campos "ID" y "NOMBRE" para identificar las filas que se actualizarán. Como resultado, las celdas "VALOR" vacías se completan con los valores correspondientes de las filas no vacías con el mismo valor "NOMBRE".
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3