मैंने इसे इस तरह से किया:
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)
यहां कुंजी यह है कि आप उन आईडी को ढूंढकर सबक्वायरी बनाते हैं जिन्हें हटाया जाना है। फिर आप 'in_' ऑपरेटर का इस्तेमाल डिलीट किए जाने वाले रिकॉर्ड्स को चुनने के लिए करते हैं। 'synchoronize_session=False' सत्र को अपडेट किए बिना क्वेरी निष्पादित करेगा। यह सर्वश्रेष्ठ प्रदर्शन को बढ़ावा देता है।