Hola sebandrescc2:
Efectivamente, puedes eliminar registros de esta forma, aunque no te lo recomiendo... esta forma de hacer múltiples eliminaciones utilizando JOIN's se mantiene por estándar de MySQL, pero no todos los DBMS's lo permiten.
Ahora bien, tu problema en realidad radica en que estás utilizando INNER JOIN, por lo tanto, es necesario que haya registros en TODAS Y CADA UNA DE LAS TABLAS para que se haga la eliminación múltiple.
Una alternativa es que utilices LEFT JOIN's... pero puedes tener algunos problemas debido a que estás utlizando muchas tablas... te sugiero que antes de cualquier prueba respaldes tu información por aquello de las malditas dudas.
Además, tienes un "error" con los JOIN's y es que estás omitiendo la cláusula ON, por lo tanto se está haciendo un producto cartesiano entre tus tablas... en lugar de poner las condiciones de igualdad en el WHERE, ponlas en el ON, que es donde deberían ir. también, en la medida de lo posible EVITA el uso de ALIAS... nada te cuesta poner el nombre completo de tus tablas y eso autodocumenta la consulta.
Entonces tu consulta quedaría más o menos así:
Código MySQL:
Ver originalDELETE proyectos
, servicios
, pagos
, gastos
, sueldos
LEFT JOIN servicios
ON proyectos .id_pro
= servicios .id_pro
LEFT JOIN pagos
ON proyectos.id_pro
= pagos .id_pro
LEFT JOIN gastos
ON proyectos.id_pro
= gastos .id_pro
LEFT JOIN sueldos
ON proyectos.id_pro
= sueldos.id_pro
proyectos.id_pro
LIKE ". $request['id_pro'];
Finalmente una pregunta, ¿es necesario que hagas una comparación tipo LIKE? es decir, LIKE se utiliza para búsqueda de patrones, utilizando operadores comodín como % o _, si sólo vas a poner valores "fijos" utiliza = en lugar de LIKE:
es decir, en lugar de poner
Código:
proyectos_id_pro LIKE '1'
pon
haz la prueba y nos comentas.
Saludos
Leo.