Here is my solution:
SELECT am.antim_id AS antim_id, am.anitm_name AS antim_name FROM (SELECT antim_id, COUNT(dc.missile_id) AS num_missiles FROM (SELECT missile_id FROM (SELECT spcid FROM SPECIES WHERE (spcname = ?)) AS s INNER JOIN ALIEN_CAPABILITY AS ac ON ac.spcid = s.spcid ) AS sm1 INNER JOIN DEFUSE_CAPABILITY AS dc ON dc.missile_id = sm1.missile_id GROUP BY antim_id ) as candidates INNER JOIN ANTI_MISSILE AS am ON am.antim_id = candidates.antim_id WHERE (candidates.num_missiles = (SELECT COUNT(*) AS possible_missiles FROM (SELECT missile_id FROM (SELECT spcid FROM SPECIES WHERE (spcname = ?)) AS s INNER JOIN ALIEN_CAPABILITY AS ac ON ac.spcid = s.spcid ) AS sm2 ) )
Regards,
Goce.