Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2014, 02:30
ProgramadorJunior
 
Fecha de Ingreso: junio-2012
Ubicación: Cerca del mar
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
DELETE fila según resultado de JOIN

Buenos días,
Os pongo un poco en situación....
En mi BD tengo unas tablas relacionadas de la siguiente manera:

movimientos
Id
idequipos_contadores (FK a equipos_contadores)

equipos_contadores
Id
idequipo (FK a equipos)

equipos
Id
idinstalacion (FK a instalaciones)

instalaciones
Id

Lo que quiero es poder borrar los movimientos que pertenezcan a una instalación concreta (la última tabla de la relación)

Había intentando esta query
Código:
DELETE FROM bdaforo.movimientos_contadores 
WHERE idmovimientos_contadores IN (
	SELECT mc.idmovimientos_contadores 
	FROM bdaforo.movimientos_contadores mc 
	LEFT JOIN bdaforo.equipos_contadores ec 
	ON mc.idequipos_contadores = ec.idequipos_contadores 
	LEFT JOIN bdaforo.equipos e 
	ON ec.idequipo = e.idequipos 
	LEFT JOIN bdaforo.instalaciones i 
	ON e.idInstalacion = i.idInstalacion 
	WHERE i.idInstalacion = '8'
) AND fecha_horaRegistro BETWEEN '2014-03-01 00:00:00' AND '2014-03-12 00:00:00'
pero me da el error Error Code: 1093. You can't specify target table 'movimientos_contadores' for update in FROM clause

Como debería hacerlo??

Gracias!