Hallo Forum,
folgendes SQL-Statement gibt einen Datensatz zurück:
SELECT * FROM `produkte`
LEFT JOIN `produkte_eigenschaften` ON
`produkte`.`id` = `produkte_eigenschaften`.`produkt_id`
WHERE `produkte`.`id` = 1
... der die Werte aus produkte mit id=1 und die Werte
aus produkte\_eigenschaften mit produkt\_id=1 anzeigt.
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
Im ersten Select-Statement habe ich "LEFT JOIN" verwendet,
weil es vorkommen kann, dass es in der Tabelle produkte\_eigenschaften garkeine Entsprechung gibt. Dann
werden mir die vermeintlichen Felder aus produkte\_eigenschaften
als NULL angezeigt.
In diesem Fall funktioniert mein zweites Statement zum Löschen
nichtmehr, denn die Verknüpfung zwischen den Tabellen:
WHERE produkte.id=produkte_eigenschaften.produkt_id``
... besteht ja nicht mehr. Wie lässt sich das Verhalten des
LEFT JOIN auf mein Delete-Statement übertragen ?
danke für Tipps und
beste grüsse,
heinetz