Предположим, у вас есть классы моделей A
и B
, сопоставленные с соответствующими таблицами.
Самый простой случай, когда у вас есть отношение в A
, указывающее на B
, назовем его A.b
. Затем вы просто используете A.b.has(type='some type')
или A.b.any(type='some type')
(в зависимости от того, является ли A.b
скалярным или представляет коллекцию) в качестве условия при запросе A
модели.
Но вы говорите, что пытаетесь разделить логин. Значит ли это, что такого отношения нет? Если это так, вы должны явно определить условие соединения:
session.query(A).join((B, A.id==B.id)).filter(B.type=='some type')