sql 从 2 个表中删除记录

sql delete record from 2 tables

我在 sql 服务器中有 2 个 table(我没有创建这些 table,但我必须使用它们):

document
 - document_id
 - created_date

trade_document
 - trade_document_id
 - document_id *foreign key to document table

今天,我添加了一堆新的 trade_document 记录(它会自动创建相关的 document_id,这是使用 ORM 完成的),但我想删除所有这些记录。

我想相对于 document table

中的 added_date 进行删除

where created_date > yesterday

我也想删除相关的document记录。

我对 sql 不是很擅长,到目前为止我只有一个基本模板,没有做太多事情:

DELETE FROM db.schema.trade_document (I'm guessing some sort of join on document)
WHERE document.created_date > 11/10/15

it doesn't haven't to be one statement, could be multiple

您需要两个删除语句并按此顺序。

 DELETE FROM db.schema.trade_document
 WHERE document_id IN (SELECT document_id
                       FROM document
                       WHERE created_date > 11/10/15);


 DELETE FROM db.schema.document
 WHERE created_date > 11/10/15);

供您参考,您还可以使用 DELETE CASCADE

创建您的 table

How do I use cascade delete with SQL Server?