I want to query a junction table for the value of column aID
that matches all values of a list of ids ids=[3,5]
in column bID
.
You are looking for a query that works on sets of rows. I think a group by with having clause is the best approach:
select aid
from jt
where bid in ()
group by aid
having count(distinct bid) = 2
If you can put the ids that you desire in a table, you can do the following more generic approach:
select aid
from jt join
bids
on jf.bid = bids.bid
group by aid
having count(distinct jt.bid) = (select count(*) from bids)