No puede eliminar de una tabla mientras existan registros dependientes en otra tabla. En tu caso, la dependencia es así
Transaction <- Purchase -> Item
Por lo tanto, primero debe eliminar cualquier compra antes de poder eliminar transacciones.
Como alternativa a ese enfoque de dos pasos, recomendaría configurar un ON DELETE CASCADE
restricción
y ve con esto:
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>
)
Tenga en cuenta que esto elimina cualquier Transaction
(y, a través de CASCADE, cualquier Purchase
) donde hay un Item
dependiente con un Client_ID
coincidente , independientemente de que existan otros artículos en él. Si esto no es lo que desea, la pregunta debe refinarse.