Nie można usunąć z tabeli, dopóki rekordy zależne nadal istnieją w innej tabeli. W twoim przypadku zależność wygląda tak
Transaction <- Purchase -> Item
Musisz więc najpierw usunąć wszystkie zakupy, zanim będziesz mógł usunąć transakcje.
Jako alternatywę dla tego dwuetapowego podejścia, polecam utworzenie ON DELETE CASCADE
ograniczenie
i idź z tym:
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>
)
Uważaj, ponieważ spowoduje to usunięcie wszelkich Transaction
(i, poprzez CASCADE, każdy Purchase
) gdzie istnieje zależny Item
z pasującym Client_ID
, niezależnie od tego, czy są jakieś inne elementy w nim. Jeśli nie tego chcesz, pytanie wymaga doprecyzowania.