sql从2个表中删除记录

dux*_*x-- 0 sql sql-server ssms

我在sql server中有2个表(我没有创建这些表,但我必须使用它们):

document
 - document_id
 - created_date

trade_document
 - trade_document_id
 - document_id *foreign key to document table
Run Code Online (Sandbox Code Playgroud)

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

我想这样做相对于该删除added_datedocument

其中created_date>昨天

我也希望document删除相关记录.

我对sql不是很了解,到目前为止我所有的基本模板都没有做太多:

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

它不是一个声明,可能是多个

Jua*_*eza 6

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

 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);
Run Code Online (Sandbox Code Playgroud)

供您参考,您也可以使用创建表格 DELETE CASCADE

如何在SQL Server中使用级联删除?