MySQL - Consulta UPDATE basada en una consulta SELECT
Necesito comprobar (desde la misma tabla) si existe una asociación entre dos eventos basada en la fecha-hora.
Un conjunto de datos contendrá la fecha-hora de finalización de ciertos eventos y el otro conjunto de datos contendrá la fecha-hora de inicio de otros eventos.
Si el primer evento finaliza antes que el segundo, me gustaría vincularlos.
Lo que tengo hasta ahora es:
SELECT name as name_A, date-time as end_DTS, id as id_A
FROM tableA WHERE criteria = 1
SELECT name as name_B, date-time as start_DTS, id as id_B
FROM tableA WHERE criteria = 2
Entonces me uno a ellos:
SELECT name_A, name_B, id_A, id_B,
if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B
¿Puedo entonces, basándome en mi campo validation_check, ejecutar una consulta UPDATE con el SELECT anidado?
461
3
Puedes hacerlo de dos maneras:
La sintaxis de actualización de MySQL:
Sintaxis ANSI SQL:
Elija la que le parezca más natural.
Espero que esto te sirva.
Si alguien quiere actualizar datos de una base de datos a otra, independientemente de la tabla a la que se dirija, debe haber algún criterio para hacerlo.
Este es mejor y limpio para todos los niveles:
¡Traaa! ¡Funciona muy bien!
Con la comprensión anterior, puede modificar los campos de conjunto y "on" criterios para hacer su trabajo. También puede realizar las comprobaciones, luego extraer los datos en la(s) tabla(s) temporal(es) y luego ejecutar la actualización utilizando la sintaxis anterior sustituyendo sus nombres de tabla y columna.
Espero que funcione, si no, hágamelo saber. Voy a escribir una consulta exacta para usted.