2015-06-01 59 views
0

問:我需要計算不在table2通過電話行,我有兩個表計數,其中不無另一個表值「 - 」 MySQL的

說明:table1有柱的電話, table2也有列phone。 問題是,有時列phone可能包含' - ',我想刪除它,以便我可以比較並計算它是否在table1中不存在。例如:

table1   table2 
id phone  id phone 
1 01-123  1 01123 
2 12345  2 23456 

預期結果數量需要爲1。 到目前爲止,我寫了這個查詢,但它不工作,有什麼幫助?

SELECT count(*) FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE REPLACE(table1.phone, '-', '') = REPLACE(table2.telephone, '-', '')) 

回答

1

試試這個,只要table2.phone了 ' - ' 和table1.phone不具有

SELECT count(*) FROM table1 
    WHERE phone NOT IN 
     (SELECT REPLACE(phone, '-', '') from table2); 
0

100%的工作

SELECT count(*) FROM table1 WHERE phone NOT IN(SELECT REPLACE(phone, '-', '') from table2); 
+0

100%?如果表2中的電話號碼包含連字符會發生什麼? –

+0

哦,這是我的答案相同的複製粘貼(雖然不正確) –

2

你必須設法NOT IN

SELECT Count(*) 
FROM table1 
WHERE phone NOT IN (SELECT Replace(telephone, '-', '') 
        FROM table2); 

See it in Action

+0

偉大的一個我的錯誤答案的複製粘貼 –

+0

它的工作,而不是複製粘貼。它不是顯示研究嗎? – Manwal

+0

7分鐘前回答相同的問題真的很棒。我喜歡你的答案,特別是'電話'部分 –

相關問題