2012-08-28 63 views
0

雖然我通過互聯網搜索,但無法找到我正在尋找的東西,可能是因爲我不知道要搜索什麼。從多個表中查找非重複記錄

我的問題是,從多個表得到非重複記錄......

說,如果我有兩個表如下,

tableA 
---------------------- 
code ip 
1  111.168.1.2 
2  111.222.333.333 
3  111.168.1.2 
4  111.234.2.44 
5  111.23.455.44 

tableB 
---------------------- 
code ip     ISP 
1  111.222.333.333 newtwo 
2  111.168.2.2  anon 
3  111.333.453.567 def 
4  111.168.2.2  tele 
5  111.222.333.333 new 
6  111.333.544.3  ispnew 

我所期望擺脫這個,

ip 
111.234.2.44 
111.23.455.44 
111.333.453.567 
143.333.544.3 

我已經試過UNION,DISTICNT和DISTINCT和工會一起,像這樣,

SELECT DISTINCT IP FROM(SELECT IP FROM tableA UNION SELECT IP FROM tableB) 

但它給所有的值唯一的重複如下,

ip 
111168.1.2 
111.222.333.333 
111.234.2.44 
111.23.455.44 
111.168.2.2 
111.333.453.567  
111.333.544.3 

請幫我在這一個,我會更加巨大,full..THANK你了:)

回答

4

DISTINCT給每個條目一次,但不會完全丟棄重複的條目。你就必須要使用GROUP BYCOUNTHAVING擺脫那些:

SELECT 
    IP 
FROM 
    (
    SELECT IP FROM tableA 
    UNION ALL 
    SELECT IP FROM tableB 
) 
GROUP BY 
    IP 
HAVING 
    COUNT(*) = 1 
+0

由一堆秒得到我:'( –

+0

yessss..thankyou非常!!!!它的作品! !:)這正是我正在尋找:)我接受它作爲答案在3分鐘內,dt什麼時候說,當我試圖標記它:) –

+0

嘿..準備打擾,請問我是否可以加快這個過程...我已經lyk 6000匹配記錄匹配,這需要一些時間:)謝謝一堆:) –