【问题】
SqlServer 中,删除表 table1 中和 表table2 相交的记录。两个表都包括三个字段:stuID, type, sysID。
【解决】
DELETE
FROM
Table1
WHERE
EXISTS(
SELECT
t.stuID,
t.[type]
,t.sysID
FROM
Table2
AS
t
WHERE
Table1.stuID=
t.stuID
AND
Table1.[type]
=t.[type]
AND
Table1.sysID=
t.sysID
);
【错误的写法】
下面的例子中,table2是table1的子集,语句本意是为了删除table1中所有和table2相同的记录。
DELETE
FROM Table1
// 这里写成 FROM Table1 AS t1 也是会报错的。不能在这里取alias
WHERE
EXISTS(
SELECT
t2
.stuID,
t2.[type]
,t2.
sysID
FROM
Table2
AS
t2
);