1
SELECT distinct  source_IP, timestamp FROM  tb1 , tb2 WHERE tb1.source_IP 
not in ( SELECT source_IP FROM tb2 WHERE tb1.source_IP = tb2.source_IP) 
AND tb1.timestamp not in 
( SELECT timestamp FROM tb2 WHERE tb1.timestamp = tb2.timestamp )

上記のクエリは、tb1の属性(source_IPとtimestamp)をtb2の同じ属性と比較し、tb1に属する個別の属性のみを選択するように作成されています。ただし、このクエリは正常に機能していますが、ステートメントには3つのクエリがあるため、より効率的にするためのより良い方法を探しています。何か提案をお願いします。

4

2 に答える 2

2

を使用できますnot exists。このような:

SELECT DISTINCT 
   tb1.source_IP, 
   tb1.timestamp 
FROM 
   tb1 
WHERE NOT EXISTS
   (SELECT NULL FROM tb2 
    WHERE tb1.source_IP=tb2.source_IP AND tb1.timestamp=tb2.timestamp)
于 2012-04-20T07:54:18.233 に答える
0

神に感謝します、このクエリはうまく機能しています:

SELECT source_IP, timestamp FROM tb1 WHERE  source_IP NOT IN (SELECT source_IP FROM tb2) 
AND timestamp NOT IN (SELECT timestamp FROM tb2)

Roee Adlerのおかげ で、mysqlの2つのテーブルの違いを比較できます

于 2012-05-02T06:49:16.790 に答える