Nemůžete odstranit z tabulky, dokud závislé záznamy stále existují v jiné tabulce. Ve vašem případě bude závislost vypadat takto
Transaction <- Purchase -> Item
Než budete moci smazat transakce, musíte nejprve smazat všechny nákupy.
Jako alternativu k tomuto dvoufázovému přístupu bych doporučil nastavit ON DELETE CASCADE omezení
a pokračujte tímto:
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>
)
Pamatujte, že tím smažete všechny Transaction (a prostřednictvím CASCADE jakýkoli Purchase ), kde je závislá Item s odpovídajícím Client_ID , bez ohledu na to, zda existují nějaké jiné položky v něm. Pokud to není to, co chcete, je třeba otázku upřesnit.