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