SqlAlchemy: filter to match all instead of any values in list?

前端 未结 3 510
伪装坚强ぢ
伪装坚强ぢ 2020-12-19 06:58

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.

3条回答
  •  时光取名叫无心
    2020-12-19 07:40

    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)
    

提交回复
热议问题