2017-07-05 30 views
0

如果SQL表中的數據與其他表中的數據匹配,我需要一些幫助來刪除SQL表中的數據。MYSQL - 從SQL中的一個表中刪除數字(如果它存在於另一個表中)

有兩個表

Table 1: DNC 
Table 2: Call_Logs 

表1僅具有一個列稱爲phone_number。 表2有多列,但重要的主列也被命名爲phone_number

基本上,我想刪除表1中表2中的任何數字(如果存在)。現在,我不想從表1中刪除每個數字(如果它們存在於表2中)。我從表2收集的數字是基於某些標準。

要拉從表2中,我需要從表1中刪除的數據,我用的是以下幾點:

select phone_number from call_logs where call_date < 'DATE' and Status = 'DNC' 

這個查詢將會給我,我將要移除所有的電話號碼列表表1是否存在。

例: https://drive.google.com/file/d/0B4NE4ZDXd6steW5odWhBMDJSY1U/view

我不知道我怎麼會去有關SQL運行查詢。任何類型將不勝感激。

回答

0

尋找到你的樣品中IMG

你可以使用一個左連接上表2(其中table2.phone_number是空的別名不匹配)

delete from table1 
left join table2 on table1.phone_number = table2.phone_number 
where table2.phone_number is null 
0

相關子查詢瓦特/的存在,所以它可以提早退出

子查詢中的select 1是因爲我們必須選擇一個值,但它並不重要。因爲着色(DNC.Phone_Number = CL.Phone_Number)是我們所有的;以及您對call_log的限制。

DELETE 
FROM DNC 
WHERE exists (SELECT 1 
       FROM Call_logs CL 
       WHERE CL.call_date < 'DATE' 
       and CL.Status = 'DNC' 
       and DNC.Phone_Number = CL.Phone_Number) 
+0

感謝您的幫助。這工作。 –

相關問題