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.