Tablas temporales, pero la única forma es hacerlo en dos pasos:
Pero en realidad, si lo miras bien, en la subconsulta estás cruzando las mismas tablas, que de alguna forma ya están relacionadas.
¿Por que necesitas un UPDATE para actualizar una de ellas con datos de la otra, si esa relación ya existe, y ese dato se puede colectar en los SELECTs futuros?
Estas creando duplicidad de datos aparentemente innecesaria.
¿Para qué?