Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/03/2011, 05:25
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: update a tres tablas con inner join

Por un lado, siempre es mejor usar INNER JOIN en lugar de la coma, como mínimo porque el JOIN es optimizable por el parser y el WHERE no, así que en definitiva puede terminar siendo más eficiente y más preciso.
La coma intentará hacer un matching ente campos del mismo nombre, y si hay al menos un nombre idéntico ente dos tablas, pero que se refieren a valores y/o cosas distintas (diferente dominio de datos), el resultado de ese matching puede ser incorrecto.
Por otro lado, ,siempre es conveniente leer primero el manual, especialmente en temas algo complejos como éste UPDATE.
Ten en cuenta esto:
Cita:
Si usa un comando UPDATE de múltiples tablas que involucren tablas InnoDB con restricciones de claves foráneas, el optimizador de MySQL puede procesar tablas en un orden distinto al de la relación padre/hijo. En este caso, el comando fall y hace un roll back. En su lugar, actualice una única tabla y confíen en las capacidades de ON UPDATE que proporciona InnoDB para que el resto de tablas se modifiquen acórdemente. Consulte Sección 15.6.4, “Restricciones (constraints) FOREIGN KEY”.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)