我有 3 张 table 。
- 发票原件
- 发票
- 发票历史记录
发票表有外键约束。 发票表中的每个条目在 Invoiceoriginal 中都有对应的条目。
invoiceOriginal 表存储发票的原始值,invoice 表存储用户修改的值。 这样做是为了在提交时获得差异。
我使用的SQL是
DELETE i
FROM invoice i
INNER JOIN InvoiceHistory aih
ON i.ClientId = aih.HistoryClientNumber
AND i.invoiceNumber = HistoryInvoiceNumber
但是由于外键约束,删除是不可能的。
表格如下:
Invoice InvoiceOriginal InvoiceHistory
Id FK_InvoiceId ClientId
ClientId ClientId InvoiceNumber
InvoiceNumber
一旦 InvoiceHistory 中存在同一 clientId 的发票编号条目,我需要删除发票和 InvoiceOriginal 中的条目。
最佳答案
您不能一次对多个表发出删除语句,在删除父记录之前,您需要为每个相关表执行单独的删除语句
关于sql - 使用 INNER JOIN 从 2 个表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37050644/