根据另一个表从表中删除

时间:2011-03-29 17:04:05

标签: sql sql-server sql-server-2005

我想根据另一个表从表中删除记录。 例如,这是基表:

table1:
License    Major
9           0012 
8           0015
7           0018 
9           0019

我想根据table2删除table1中的项目:

table2:
License    Major 
8           0015
7           0018 
9           0019

类似的东西:

delete from table1 
where table1.license=table2.license 
      and table1.major=table2.major

2 个答案:

答案 0 :(得分:3)

DELETE FROM语法非常方便。

  • 第二个FROM子句是一个简单的INNER JOIN选择所有匹配的记录。
  • 第一个FROM子句删除table1中与第二个子句匹配的所有内容。

SQL声明

DELETE FROM t1
FROM  table1 t1
      INNER JOIN table2 t2 ON t2.License = t1.License
                              AND t2.Major = t1.Major

答案 1 :(得分:2)

(也有效)

delete table1 
from table2
where table1.license=table2.license and table1.major=table2.major