Quiero actualizar una tabla en una declaración que tiene varias combinaciones. Aunque sé que el orden de las uniones realmente no importa (a menos que esté usando sugerencias de optimizador), las ordené de cierta manera para que sean más intuitivas de leer. Sin embargo, esto hace que la tabla que quiero actualizar no sea la que empiezo, y tengo problemas para actualizarla.Actualización de MySql Una tabla unida
Un ejemplo ficticio de lo que me gustaría hacer es algo como:
UPDATE b
FROM tableA a
JOIN tableB b
ON a.a_id = b.a_id
JOIN tableC c
ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
AND c.val > 10;
Hay muchos mensajes acerca de la actualización con une aquí, sin embargo siempre tienen tabla que se actualiza en primer lugar. Sé que esto es posible en SQL Server y espero que también sea posible en MySQL.
Debe colocar 'SET b.val = a.val + c.val' antes de' FROM ... '. Consulte http://stackoverflow.com/questions/2334712/sql-server-update-from-select – Gerben
Este ejemplo tiene SET después de from, y esos ejemplos actualizan la primera tabla en el orden de unión. Me gustaría actualizar una tabla en el medio del orden de unión. – Zugwalt
Eso no debería importar. Incluso si lo hiciera, podría cambiar el orden de las uniones ('tableB b JOIN tableA a ON a.a_id = b.a_id'). – Gerben