0

インターネットで検索しましたが、探しているものが見つかりませんでした。何を検索すればよいかわからないためかもしれません。

私の問題は、複数のテーブルから重複しないレコードを取得することです...

次のように2つのテーブルがある場合、

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 AND UNIONを一緒に試してみましたが、

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 

これで私を助けてください、私は大いに素晴らしいでしょう..どうもありがとうございました:)

4

1 に答える 1

4

DISTINCTすべてのエントリを1回だけ与えますが、重複するエントリを完全に破棄するわけではありません。あなたがしなければならないことは、を使用することGROUP BYCOUNTありHAVING、それらを取り除くために:

SELECT
  IP
FROM
  (
    SELECT IP FROM tableA
  UNION ALL
    SELECT IP FROM tableB
  )
GROUP BY
  IP
HAVING
  COUNT(*) = 1
于 2012-08-28T11:04:19.383 に答える