2016-01-22 94 views
0

我有一个表1:如何通过条件从不同表格中删除数据来删除行?

ID month first_name last_name 
11 1  bla1  bla2 
11 2  bla1  bla2 
11 3  bla1  bla2 
11 4  bla1  bla2 
22 1  bla3  bla4 
22 2  bla3  bla4 
22 3  bla3  bla4 
22 4  bla3  bla4 

而另一个表 - 表2:

Id month 
11 1 
11 3 
22 4 

而且我想根据表2中删除从表1中的记录,所以我结束了:

ID month first_name last_name 

    11 2  bla1  bla2 
    11 4  bla1  bla2 
    22 1  bla3  bla4 
    22 2  bla3  bla4 
    22 3  bla3  bla4 

任何简单的方法来做到这一点?

Delete from table1 tb1 
where tb1.Id = tb2.Id and tb1.month = tb2.month 

但我确定正确的连接。

回答

4

您可以这样做来指定在进行连接时要删除的数据。

DELETE tb1 
FROM table1 as tb1 
INNER JOIN table2 as tb2 ON tb1.Id = tb2.Id 
WHERE tb1.month = tb2.month 
0
delete tb1 
from table1 tb1 
where exists 
     (select 1 from table2 
      where tb1.id=tb2.id 
      and tb1.month=tb2=month) 
相关问题