Во-первых, каждый раз, когда вы ссылаетесь на столбец LEFT JOINed в предложении WHERE, например statuses.number =2
, вы отрицаете LEFT и заставляете его вести себя как ВНУТРЕННИЙ.
Во-вторых, попробуйте эту версию:
SELECT e.id, e.name
FROM employers e
WHERE EXISTS(SELECT 1
FROM positions p
INNER JOIN statuses s
ON p.some = s.position
WHERE p.id = e.id
AND s.number = 2)