Get rows with minimum value
Try this query:

select * from employee join employee_company on    
employee.employee_id=employee_company.employee_id 
join company on    
company.company_id=employee_company.company_id 
join (select 
employee_id, 
company_id, 
min(score) score from score 
group by employee_id, 
company_id) 
score on score.employee_id=employee.employee_id and 
score.company_id=company.company_id 
join factor_company on 
factor_company.company_id=company.company_id 
join factor on 
factor_company.factor_id=factor.factor_id 
where factor.factor_id =:factor_id;