Du kan ikke slette fra en tabel, så længe der stadig findes afhængige poster i en anden tabel. I dit tilfælde går afhængigheden sådan her
Transaction <- Purchase -> Item
Så du skal slette eventuelle køb først, før du kan slette transaktioner.
Som et alternativ til den to-trins tilgang vil jeg anbefale at oprette en ON DELETE CASCADE
begrænsning
og gå med dette:
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>
)
Vær opmærksom på, at dette sletter enhver Transaction
(og, gennem CASCADE, ethvert Purchase
) hvor der er et afhængigt Item
med et matchende Client_ID
, uanset om der er nogen andre genstande i den. Hvis det ikke er det, du ønsker, skal spørgsmålet forfines.