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 和时间戳)与 tb2 中的相同属性,并且只选择属于 tb1 的不同属性。但是,这个查询运行良好,但我正在寻找更好的方法来提高它的效率,因为语句中有三个查询。请有任何建议。

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 中两个表之间的差异

于 2012-05-02T06:49:16.790 回答