sql >> Databáze >  >> RDS >> Mysql

Jak odstranit z více tabulek v MySQL?

Použijte JOIN v DELETE prohlášení.

DELETE p, pa
      FROM pets p
      JOIN pets_activities pa ON pa.id = p.pet_id
     WHERE p.order > :order
       AND p.pet_id = :pet_id

Případně můžete použít...

DELETE pa
      FROM pets_activities pa
      JOIN pets p ON pa.id = p.pet_id
 WHERE p.order > :order
   AND p.pet_id = :pet_id

...pro smazání pouze z pets_activities

Viz toto .

Pro odstranění jedné tabulky, ale s referenční integritou, existují jiné způsoby, jak to udělat s EXISTS , NOT EXISTS , IN , NOT IN atd. Ale ten výše, kde určujete, ze kterých tabulek se mají odstranit, s aliasem před FROM klauzule vás může dostat z několika velmi úzkých míst snadněji. Mám tendenci oslovit EXISTS v 99% případů a pak je tu 1%, kde tato syntaxe MySQL zabere den.



  1. Nejrychlejší způsob, jak najít vzdálenost mezi dvěma zeměpisnými/délkovými body

  2. Postgresql - zálohování databáze a obnova u jiného vlastníka?

  3. Připojení k místní databázi SQL Server pomocí C#

  4. Jak opravit „název profilu není platný“ při aktualizaci profilu pošty databáze v SQL Server (T-SQL)