Antes de nada muchísimas gracias por ayudarme ;)
He probado haciendo una tabla fija en vez de temporal para ver si funciona y como me lo has puesto me da de resultado los usuarios que no han escrito ningún mensaje, en vez de los mensajes que no tienen usuario.
Lo he puesto así:
Sólo he ejecutado la primera parte (el SELECT), esto me da una tabla con los ID de los mensajes "sin dueño". Me gustaría que me dijeras si la segunda parte está bien. En teoría coge los ID de los mensajes sin dueño de la tabla temporal y los que coinciden en la tabla mensajes los borra, está bien?