fejből írtam :) nyilván kell az aliasokat használni :) pos=1 már nem kell így.
SELECT `employees`.*, `titles`.`title`, `salaries`.`salary`
FROM `employees`
INNER JOIN (select t . emp_no
,max(title) title
from `titles` t
join (select emp_no
, max(from_Date) lst_dat
from `titles`
group by emp_no
) lt
on lt.emp_no=t.emp_no
and lt.lst_dat = t.from_date
WHERE t.`title`='Staff'
group by t. emp_no ) as t
ON
(t.`emp_no` = `employees`.`emp_no`) AND
--- (t.pos =1)
INNER JOIN (select s. emp_no
,max(salary) salary
from `salaries` s
join (select emp_no
, max(from_Date) lss_dat
from `salaries`
group by emp_no
) ls
on ls.emp_no=s.emp_no
and ls.lss_dat = s.from_date
WHERE s.`title`='Staff'
group by s. emp_no ) as s
ON
(s.`emp_no` = `employees`.`emp_no`) AND
--- (s.pos =1)
LIMIT 0, 20