Você não pode excluir de uma tabela enquanto os registros dependentes ainda existirem em outra tabela. No seu caso, a dependência fica assim
Transaction <- Purchase -> Item
Portanto, você precisa excluir todas as compras antes de poder excluir transações.
Como alternativa a essa abordagem de duas etapas, eu recomendaria configurar um
ON DELETE CASCADE
restrição
e vai com isso: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>
)
Esteja ciente de que isso exclui qualquer
Transaction
(e, através do CASCADE, qualquer Purchase
) onde há um Item
dependente com um Client_ID
correspondente , independentemente de haver outras itens nele. Se isso não é o que você quer, a pergunta precisa ser refinada.