Ik heb de subquery van @Abdullah getest en kreeg inderdaad het tegenovergestelde van wat ik wilde. Na een beetje testen kwam ik uit bij de geneste vragen die me gaven wat ik zocht:
select distinct entity_id from construction
where entity_id not in (
select entity_id from construction c left outer join available a on a.id = c.component_id
where a.id is null
);