2016-01-22 110 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) 
相關問題