sql >> Database teknologi >  >> RDS >> Mysql

SQLAlchemy:Sådan slettes med join

Sådan gjorde jeg det:

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)

Nøglen her er, at du opretter underforespørgsel ved at finde id'er, der skal slettes. Så bruger du 'in_'-operatoren til at vælge poster, der skal slettes. 'synchoronize_session=False' vil udføre forespørgslen uden at opdatere sessionen. Dette giver det bedste ydelsesboost.



  1. Sådan importeres en enkelt tabel til mysql-databasen ved hjælp af kommandolinjen

  2. Erstat flere tegn i en streng i SQL Server (T-SQL)

  3. Oracle SQL Query logning

  4. Android Room Embedded Relation ignorerer SQL where-tilstand