2012-10-03 89 views
-2

我有2個表。 table1有200萬條記錄,table2有1100萬條記錄我想從table2刪除table1我如何在MySQL中執行此操作,併爲此計算多少數據? 謝謝。從表2中刪除,如果存在於表1中

+2

,一頂帽子字母開始你的句子,不要忘了逗號,期限和任何可以讓你更易讀的標誌。不要個人承擔,只是對我而言,你的問題真的很難理解。 – mbarthelemy

+1

200萬:你是不是黑了一些電話公司或什麼?並btw不明白你的問題,如果你想刪除表2中的所有no,只需使用刪除查詢,從表2刪除;' –

+1

@先生alien 200萬行是不是太多,如果你正在與真正的工作應用。 – NullUserException

回答

2

這聽起來像你想要刪除表2中匹配表1中的記錄的所有記錄。如果是這樣,你可以使用子查詢。我不知道如何有效的,這將是與你有記錄的數目,但下面應該工作:

DELETE FROM table2 where table2.phonenumber IN (select phonenumber from table1); 
0

嘗試做一個連接,然後從刪除加入

SELECT tbl1.MyId FROM table1 tbl1 
JOIN table2 on tbl1.phonenumber = tb2.phonenumber 

然後從

DELETE FROM Table2 WHERE MyID IN 
(SELECT tbl1.MyId FROM table1 tbl1 
JOIN table2 on tbl1.phonenumber = tb2.phonenumber) 

這是SQL代碼,不能完全確定在MySQL

什麼變化刪除

祝你好運!

+0

我確信有一個更有效的方法可以做到這一點,但這是我第一次提出的。 – Badmiral

1
SELECT Table2.* FROM Table2 JOIN Table1 ON Table2.phone = Table1.phone WHERE Table2.phone is not null 

DELETE Table2.* FROM Table2 JOIN Table1 ON Table2.phone = Table1.phone WHERE Table2.phone is not null 
1
Delete from table2 
where number in (Select number from table1) 
相關問題