Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/08/2013, 11:13
El_LoBooo
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 0
No consigo actualizar una columna a través de 3 tablas

Hola!

A ver si alguien puede echarme una mano con esto.

Tengo un campo en una tabla el cuál quiero actualizar pero la forma en que está diseñada la BBDD no me permite hacerlo a través de una ni dos tablas, sino 3 y me estoy volviendo loco. Tal y como lo tengo ahora:
Código MySQL:
Ver original
  1. update `bfb9s_virtuemart_medias` set `file_title` =
  2. (SELECT `product_name` from `bfb9s_virtuemart_products_es_es` WHERE `virtuemart_product_id` IN
  3. (SELECT `virtuemart_product_id` from `bfb9s_virtuemart_product_medias` where `virtuemart_media_id` IN
  4. (SELECT `virtuemart_media_id` from `bfb9s_virtuemart_medias`)))

Me arroja el error #1093 - You can't specify target table 'bfb9s_virtuemart_medias' for update in FROM clause

Si hago la consulta de los SELECT por separado muestra el resultado que quiero introducir, pero al integrarlo en el UPDATE me lanza ese error.

Buscando información en internet parece que MySQL o la versión que tengo no permite hacerlo de ésa forma sino que debo utilizar INNER JOIN, con dos tablas he hecho algo parecido pero con 3 tablas es algo que se me escapa.

¿Alguien puede arrojarme algo de luz?

Última edición por gnzsoloyo; 08/08/2013 a las 11:16 Razón: Código muy mal etiquetado