Tricky one.
Here's a solution in MySQL:
select drink_id,
count(*) as c,
sum(if(a.ing_id in (1,2,3,5),1,0)) as d
from a
group by a.drink_id
having c=d
This will group all results by drink_id, so everything that happens next is done on the group of records that share the same drink_id
count(*) as c
will count how many records there are for each drink_id
sum(if(a.ing_id in (1,2,3,5),1,0)) as d
will count how many records there are where ing_id has a value out of (1,2,3,5)
having c=d
tells mysql to only return results if c=d, or the total count of records is the same as the count of records where ing_id is in (1,2,3,5)