Đây là cách tôi đã làm điều đó:
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)
Chìa khóa ở đây là bạn tạo truy vấn con bằng cách tìm các id cần phải xóa. Sau đó, bạn sử dụng toán tử 'in_' để chọn các bản ghi sẽ bị xóa. 'synchoronize_session =False' sẽ thực thi truy vấn mà không cần cập nhật phiên. Điều này giúp tăng hiệu suất tốt nhất.