2015-10-13 110 views
-1

我有一个数据库表叫有四个外键和一个十进制量(主键了解)。我正在使用MY-SQL数据库5.6.17。我怀疑,该数据包含了反向组合point_id_2point_id_2重复的数量。另外两个外键,method_id类标识码似乎这似乎有重复量的各元组进行镜像。看到下面的图片。SQL-删除重复对称

enter image description here

如果你看一下外键,point_id_1,point_id_2和金额这就是我所说的“对称的数据”。

是否有可能追查其中point_id_1和point_id_2互换和量是相同的所有行? 这样我可以决定删除哪些行。

+0

有什么外键可以处理它?如果你用单词列替换这个词,也许你的文章会更有意义? – jarlh

+0

你应该先告诉我们,每个'point_id_1','point_id_2'组,珍惜你应该从其它列中选择,我的意思是例如'MAX(量)','MIN(量)',...等等,你想选择像method_ID等其他列相同... –

+0

我想看到所有的行,其中point_id_1,point_id_2互换如图中所示。然后根据结果我可以决定是否有大量不必要的重复数据。基本上,如果一个元组包含point_id_1为1,point_id_2为2,然后相反,我想比较它们以查看金额是否相同。如果是这样,我可以删除一个。但与其他身份证在混合。我可能必须为每个副本删除3行。希望它更清楚一点。 – Binaryrespawn

回答

0

所以,你只是想知道,如果你有对相同数量的两个POINT_ID领域的重复?您只需要在您认为匹配的字段上进行简单加入:

SELECT r1.*, r2.* 
FROM 
rates r1 
INNER JOIN rates r2 
ON r1.point_ID_1 = r2.point_ID_2 AND r1.point_ID_2 = r2.point_ID_1 
WHERE 
    r1.amount = r2.amount 
+0

谢谢,我会给它一个去看看会发生什么。 – Binaryrespawn