У меня есть модели A
и B
, соединенные во взаимосвязи «многие ко многим» с использованием параметра secondary
, относящегося к модели AB
(таблица ассоциации).
Использование query(A).options(joinedload(A.b))
сгенерирует запрос:
SELECT ...
FROM a
LEFT OUTER JOIN (a_b AS a_b_1 JOIN b ON b.id = a_b_1.b_id) ON a.id = a_b_1.a_id
Но я хочу получить дополнительные условия для объединения (не используя WHERE!), Чтобы отфильтровать определенный флаг в B
. Так вот так:
SELECT ...
FROM a
LEFT OUTER JOIN (a_b AS a_b_1 JOIN b ON b.id = a_b_1.b_id AND b.flag = 1) ON a.id = a_b_1.a_id
Как мне это сделать с помощью SQL Alchemy?