これが私がやった方法です:
map_ids = session.query(Table1.map_id). \
filter(Table1.xxxx == 'xxx_value')
q = session.query(Table2). \
filter(Table2.map_id.in_(map_ids.subquery()))
q.delete(synchronize_session=False)
ここで重要なのは、削除する必要のあるIDを見つけてサブクエリを作成することです。次に、「in_」演算子を使用して、削除するレコードを選択します。 'synchoronize_session =False'は、セッションを更新せずにクエリを実行します。これにより、最高のパフォーマンスが向上します。