Una tabla temporal nos ayuda cuando necesitamos tener la información de una o más tablas agrupadas en una sola para poder procesarla sin afectar el origen antes de mostrarla en algún reporte o una inserción o modificación en otras tablas.

DROP TEMPORARY TABLE IF EXISTS TMP_EXAMEN;
CREATE TEMPORARY TABLE TMP_EXAMEN(
	id INT(11) NOT NULL AUTO_INCREMENT,
	examen INT,
	descripcion TEXT,
	fechainicio DATE,
	fechafin DATE,
	horasierre TIME,
	INDEX(examen),
	PRIMARY KEY  (id),
	UNIQUE KEY id (id)
);
INSERT INTO TMP_EXAMEN(examen,descripcion,fechainicio,fechafin,horasierre)
SELECT 
	examen,descripcion,
	fechainicio,fechafin,
	horasierre
FROM aca_examencurso
WHERE curso=_curso
AND carrera=_carrera
AND modulo=_modulo
AND estado=1;
				
SELECT * FROM TMP_EXAMEN;