Alex Rivera | Logout

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

Asked 2012-11-12T19:03:14.207
12

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.

This is my junction table (JT):

 aID    bID
   1      1
   1      2
   2      5
   2      3
   1      3
   3      5

I have this query: session.query(JT.aID).filter(JT.bID.in_(ids)).all()

This query returns the aID values 1, 2 and 3 because they all have rows with either 3 or 5 in the bID column. What I want the query to return is 2 because that is the only aID value that has all values of the ids list in its bID column.

Don't know how to explain the problem better, but how can I get to the result?

Edit
Report

1 Answer

0

Try:

    session.query(JT.aID).filter(not_(JT.bID.in_(ids))).all()
answered 2013-06-01T06:49:51.737

Your Answer