Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/08/2010, 12:35
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: 16 años, 5 meses
Puntos: 2658
Respuesta: PHP/SQL: Convertir SELECT a DELETE

No puedes convertir un SELECT en DELETE. AL menos no puedes hacerlo desde la optica de SQL, porque ambas consultas son incompatibles.
El problema base es que DELETE tiene dos formas distintas de escribirse:
Código MySQL:
Ver original
  1. DELETE a, b, c
  2. FROM m, n
  3. [WHERE condicion];
Código MySQL:
Ver original
  1. [WHERE condicion];
La segunda de las formas es obviamente incompatible y exime de comentarios: En ella se elimina de la tabla "m" todo lo que cumpla la condicion.

Pero el problema básico es la primera: En ese contexto, a, b, c no son campos sino tablas, por lo que no representan lo mismo que en un SELECT.
Esa sentencia indica que se borre de las tablas a, b y c aquello que esté presente en a junta m, n. Como se trata de objetos incompatibles, no es posible hacer una transformación directa entre las sentencias.

¿Se entiende?

Creo que mejor usas dos funciones diferentes para esta tarea. Te ahorraras problemas.

P.D.: Cuando no encuentras documentación sobre un caso en Google, lo más probable es que no se pueda hacer...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)