sql >> Database >  >> RDS >> Mysql

SQLAlchemy:Hoe te verwijderen met join

Dit is hoe ik het deed:

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)

De sleutel hier is dat u subquery's maakt door id's te vinden die moeten worden verwijderd. Vervolgens gebruikt u de operator 'in_' om records te selecteren die moeten worden verwijderd. 'synchoronize_session=False' zal de query uitvoeren zonder de sessie bij te werken. Dit geeft de beste prestatieverbetering.



  1. Hoe selecteer ik een vast aantal rijen voor elke groep?

  2. Best practice van bulk_create voor enorme records

  3. Spring Data JPA Auditing werkt niet voor de JpaRepository-updatemethode met @Modifying-annotatie, waarom?

  4. Een rij ophalen, met gegevens uit de sleutel-waardepaartabel in MySQL