Vinzenz Mai: Delete über mehrere Tabellen

Beitrag lesen

Hallo,

Um in produkte den Datensatz mit der id=1 und in
produkte\_eigenschaften mit produkt\_id=1 gleichzeitig
zu löschen funktioniert folgendes SQL-Statement:

DELETE produkte, produkte_eigenschaften FROM produkte, produkte_eigenschaften
WHERE produkte.id = produkte_eigenschaften.produkt_id
AND produkte.id = 2

  
das ist, vorsichtig formuliert, Unsinn und sollte einen Syntaxfehler produzieren. Es heißt  
  
DELETE FROM  
    produkte  
  
und nicht  
  
DELETE  
    spaltenliste  
FROM  
    produkte  
  
  
den Hinweis auf einen [FOREIGN-KEY-Constraint mit ON DELETE CASCADE](https://forum.selfhtml.org/?t=191706&m=1278590) hast Du bereits bekommen. Du könntest auch die zweite oder dritte Syntax verwenden, die im Handbuch angegeben ist:  
  
DELETE FROM  
    p,  
    pe  
USING  
    produkte p  
LEFT JOIN  
    produkte\_eigenschaften pe  
ON  
    p.id = pe.produkt\_id  
WHERE  
    <Einschränkungen>  
  
  
Freundliche Grüße  
  
Vinzenz