Kann ich Zeilen aus zwei Tabellen in einer einzigen SQL-Anweisung löschen?
-
29-09-2019 - |
Frage
Ich habe 2 Tabellen sogenannte "REVIEW" und die anderen "REVIEW_DESCRIPTION"
Wenn ich eine Verknüpfung aller Daten von beiden zu erhalten:
SELECT *
FROM reviews
INNER JOIN reviews_description
ON reviews.reviews_id=reviews_description.reviews_id
WHERE reviews.customers_id = 54183
Auf dieser Grundlage möchte ich Zeilen in beiden Tabellen löschen, die diese Kriterien in einem Schuss passen, irgendwelche Tipps?
Lösung
Ja, MySQL unterstützt Löschungen von mehr als einer Tabelle in einer einzigen Anweisung :
Für die erste Mehrtabellensyntax, nur passende Zeilen aus den Tabellen aufgeführt, bevor die FROM-Klausel gestrichen. Für die zweiten Mehrtabellen Syntax nur passende Zeilen aus den Tabellen in der FROM-Klausel aufgelistet (vor der USING Klausel) gelöscht. Der Effekt ist, dass Sie Zeilen aus mehreren Tabellen gleichzeitig löschen und zusätzliche Tabellen, die nur für die Suche ...
verwendet werden,
Erstes Multi-Table-Syntax Beispiel:
DELETE reviews, reviews_description
FROM reviews r
JOIN reviews_description rd
WHERE reviews.reviews_id = reviews_description.reviews_id
AND reviews.customers_id = 54183
Andere Tipps
Wenn Sie on cascade delete
oder eine delete trigger
Setup benötigen Sie 2 Anweisungen verwenden
würde löschen Hilfe kaskadieren?