Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQLAlchemy:So löschen Sie mit Join

So habe ich es gemacht:

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)

Der Schlüssel hier ist, dass Sie eine Unterabfrage erstellen, indem Sie IDs finden, die gelöscht werden müssen. Dann verwenden Sie den Operator 'in_', um die zu löschenden Datensätze auszuwählen. 'synchoronize_session=False' führt die Abfrage aus, ohne die Sitzung zu aktualisieren. Dies gibt den besten Leistungsschub.