查询某些值更改的数据

时间:2017-03-08 12:12:05

标签: mysql compare

我在数据库中有数据,我试着检查今天和昨天之间数据的不同之处。

     select distinct prefix_id,node_name,prefix_cidr 
     FROM tableA AS old 
     WHERE import_date = '2017-03-06' 
     AND prefix_cidr 
     IN 
         (SELECT prefix_cidr 
         FROM tableA 
         WHERE old.import_date <> import_date 
         AND old.prefix_cidr = prefix_cidr 
         AND node_name <> old.node_name)

//查询具有相同ip值但导入日期和节点值不同的数据

我得到以下结果,但不正确。 例如:

2017-03-01|x.x.x.x|AAA
2017-03-06|x.x.x.x|AAA

以下是我需要的结果 例如:

2017-03-01|x.x.x.x|AAA
2017-03-06|x.x.x.x|BBB

我在节点发生变化时获取数据

这是我的数据

https://i.stack.imgur.com/xomO7.png

1 个答案:

答案 0 :(得分:0)

我认为你需要朝这个方向发展:

SELECT distinct 
 old.prefix_id
 , old.node_name
 , old.prefix_cidr
 , new.prefix_id
 , new.node_name
 , new.prefix_cidr 
FROM tableA AS old, tableA AS new
WHERE old.import_date = '2017-03-06' 
 AND old.import_date <> new.import_date 
 AND old.prefix_cidr = new.prefix_cidr 
 AND old.node_name <> new.node_name