sql >> Databasteknik >  >> RDS >> Mysql

SQLAlchemy:Hur man tar bort med join

Så här gjorde jag:

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)

Nyckeln här är att du skapar en underfråga genom att hitta ID som måste raderas. Sedan använder du operatorn 'in_' för att välja poster som ska raderas. 'synchoronize_session=False' kommer att köra frågan utan att uppdatera sessionen. Detta ger den bästa prestandaökningen.



  1. MySQL:Vad händer med icke aggregerade fält på en GROUP BY?

  2. Datumtid lika med eller högre än idag i MySQL

  3. Hur man skapar ett lösenord med sex tecken i MySQL 5.7

  4. Anslut med i Oracle SQL