Cita: Cuando elimino un registro de la tabla sin hacer la referencia la otra no se borra, de hecho en mi primer intento mi programa tenia dos querys para borrar las tablas por separado pero claro, tambien daba el error
Eso muestra que tienes
mal definida la clausula ON DELETE.
En cuanto a borrar con dos queries, la cosa es simple: Primer borras la que tiene la FK, y luego la tabla padre. Nunca al revés.
Ahora bien, si hacerlo con dos queries falla con la tabla hija, entonces hay dos posibilidades: 1) Esa tabla a su vez es FK en otra, es decir que hay otra tabla que depende de ella, o 2) Tienes una dependencia circular (poco probable).
En todo caso, lo que podrías hacer es mostrarnos qué te devuelve cada una de estas consultas:
Eso nos puede mostrar cual es la dependencia entre esas tres tablas, aunque habría que verificar un poco mas para saber si hay otras transitivas que puedan bloquear borrados.