Non puoi eliminare da una tabella finché i record dipendenti esistono ancora in un'altra tabella. Nel tuo caso, la dipendenza è così
Transaction <- Purchase -> Item
Quindi devi eliminare tutti gli acquisti prima di poter eliminare le transazioni.
In alternativa a questo approccio in due fasi, consiglierei di impostare un ON DELETE CASCADE
vincolo
e vai con questo:
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>
)
Fai attenzione che questo elimina qualsiasi Transaction
(e, tramite CASCADE, qualsiasi Purchase
) dove è presente un Item
dipendente con un Client_ID
corrispondente , indipendentemente dal fatto che ce ne siano altri elementi in esso contenuti. Se questo non è quello che vuoi, la domanda deve essere precisata.