Nun, wenn Sie InnoDB-Tabellen verwendet hätten, könnten Sie eine Kaskadierendes Löschen mit Fremdschlüsseln , das würde alles automatisch machen. Aber wenn Sie einen Grund haben, MyISAM zu verwenden, verwenden Sie einfach ein DELETE mit mehreren Tabellen :
%Vor%Sie können entweder nur nach Anwesenheit suchen
%Vor%aber das würde nur Sinn machen, wenn dieses Verhalten nicht immer zutrifft. Wenn das Verhalten immer zutreffen sollte, implementieren Sie Fremdschlüssel mit delete bei cascade
erklärt auf einer Zillion Websites, in Ihren Hilfedateien und hier
Das Löschen von Zeilen aus mehreren Tabellen kann auf zwei Arten erfolgen:
DELETE-Anweisungen mit mehreren Tabellen können in zwei Formaten geschrieben werden. Das folgende Beispiel zeigt eine Syntax für eine Abfrage, die Zeilen aus einer Tabelle t1 löscht, wobei die ID-Werte mit denen in einer Tabelle t2 übereinstimmen:
%Vor%Die zweite Syntax ist etwas anders:
%Vor%Um die übereinstimmenden Datensätze aus beiden Tabellen zu löschen, lauten die Anweisungen:
%Vor%Die ORDER BY- und LIMIT-Klauseln, die normalerweise von UPDATE und DELETE unterstützt werden, sind nicht erlaubt, wenn diese Anweisungen für Operationen mit mehreren Tabellen verwendet werden.
Tags und Links mysql sql-delete delete-row