En términos generales, la consulta que planteas esta mas o menos correcta. Hay algunas cosas que se pueden mejorar, pero que no afectan a la lógica de la consulta:
- No uses coma, si usas JOIN, LEFT JOIN, INNER JOIN o RIGHT JOIN. Pueden producirse errores de interpretación en el parser en ocasiones. A veces incluso saltan errores de sintaxis que no son tales, porque si hay un JOIN de cualquier tpo, la coma genera problemas.
- Pon las tablas en el orden de la cadena de relaciones. Hace más eficiente la lectura de los datos.
- Si usas relaciones de FK, nunca uses MyISAM, las tablas MyISAM no tienen restricciones de FK, por lo que deberás mantener la consistencia de forma programática. Las tablas MyISAM son eficientes sólo si hay muchas operaciones INSERT/UPDATE/DELETE. Y por muchas, estamos hablando de cientos de miles por día, para que quede claro.
- Usa alias abreviados. Poner alias largos es un despropósito, no ayuda a la comprensión del código.
- Los filtros de valores en el FROM (A = N siendo N una constante), no son eficientes si no hay indices definidos para esos campos. En ese caso suele ser mejor ponerlos en el WHERE.
Limpiando un poco el código, queda mas o menos así (es basicamente lo que pusiste):
Código MySQL:
Ver original E.id,
E.apellido1,
E.apellido2,
E.nombre1,
E.nombre2,
AR.id,
AR.descripcion,
A.descripcion,
A.id,
N.*
personas E
N.periodo_id = 4
E.apellido1,
E.apellido2,
E.nombre1,
E.nombre2;