chelodelsur..
Vaya si fue dificil encontrar el por que no respetaba el left o right join al momento de hacer la consulta.
Todo se da por la condición que se maneja en el where. Desde ahí, estamos limitando toda una consulta con referencia a el campo fecha_date2 y no teniendo en cuenta a mediahora de la tabla horas.
He probado esto y parece funcionar. Pruebalo y nos cuentas.