Не можете да изтриете от таблица, докато зависими записи все още съществуват в друга таблица. Във вашия случай зависимостта е така
Transaction <- Purchase -> Item
Така че първо трябва да изтриете всички покупки, преди да можете да изтриете транзакции.
Като алтернатива на този двуетапен подход, бих препоръчал да настроите ON DELETE CASCADE
ограничение
и продължете с това:
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>
)
Внимавайте, че това изтрива всяка Transaction
(и чрез CASCADE всяка Purchase
), където има зависим Item
със съответстващ Client_ID
, независимо дали има други елементи в него. Ако това не е това, което искате, въпросът трябва да бъде прецизиран.