Det andra argumentet till Query.join() bör i detta fall vara fullständig ON sats, men istället skickar du 3 argument till join() . Använd and_() för att kombinera predikaten, som görs i den råa SQL:
already_in_db_query = db.session.query(MyModel)\
.join(cte,
and_(cte.c.field1 == MyModel.field1,
cte.c.field2 == MyModel.field2),
).all()