小编eri*_*pey的帖子

使用两列从不在另一个表中的表中删除

我试图弄清楚我正在尝试完成的这个删除语句。我了解如何从不在列中的表中删除(到 table2 的子查询)

我有两个多列的表,每个表有两列组成主键。我想你必须加入吗?我想要以下内容:

Delete From tbl1 left join tbl2
on tbl1.PK1 = tbl2.PK1 and tbl1.PK2 = tbl2.PK2
where tbl1_PK1 Not IN(
Select Distinct tbl2.PK1, tbl2.PK2 where DateStr >= GetDate()-365)
Run Code Online (Sandbox Code Playgroud)

我正在尝试从 tbl1 中删除行。这看起来接近正确吗?

编辑添加:

tbl1 PK1, PK2, Col1

tbl2 PK1、PK2、DateStr

Delete From tbl1 left join tbl2
on tbl1.PK1 = tbl2.PK1 and tbl1.PK2 = tbl2.PK2
where tbl1.PK1,tbl1.PK2 Not IN(
Select Distinct tbl2.PK1, tbl2.PK2 where DateStr >= GetDate()-365)
Run Code Online (Sandbox Code Playgroud)

运行 sqlfiddle 后剩下的应该是:

tbl1
('T', '222','asdf')

tbl2
('T', '222','9/26/2014')
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server

2
推荐指数
1
解决办法
5930
查看次数

标签 统计

sql-server ×1

sql-server-2008 ×1