Sie können nicht aus einer Tabelle löschen, solange noch abhängige Datensätze in einer anderen Tabelle vorhanden sind. In Ihrem Fall sieht die Abhängigkeit so aus
Transaction <- Purchase -> Item
Sie müssen also zuerst alle Käufe löschen, bevor Sie Transaktionen löschen können.
Als Alternative zu diesem zweistufigen Ansatz würde ich empfehlen, einen ON DELETE CASCADE
Einschränkung
und geh damit:
DELETE
Transaction
WHERE
Transaction_ID IN (
SELECT
Transaction_ID
FROM
Purchase INNER JOIN Item ON Item.Item_ID = Purchase.Item_ID
WHERE
Item.Client_ID = <your Client ID here>
)
Beachten Sie, dass dadurch alle Transaction
gelöscht werden (und über CASCADE jeder Purchase
), wo es ein abhängiges Item
gibt mit passender Client_ID
, unabhängig davon, ob es andere gibt Gegenstände darin. Wenn Sie dies nicht möchten, muss die Frage verfeinert werden.