关于SQL Server表的行之间的成对关系的查询的重复结果

问题描述 投票:0回答:1

[我在十五世纪末建立了一个大西洋商人贸易数据库。我写了这个查询来查找同一合同中个人的关系。它可以正常工作,但是会产生重复的结果,例如'a,b,01-01-1500'和'b,a,01-01-1500'。对我来说,这是一个问题,因为我现在不考虑方向性。我试图简单地过滤结果,但是却产生了一个更严重的问题,因为无论关联发生在不同的日期还是不同的合同上,它都留下了一个结果(这可能是我的错,过滤是我仍在学习的东西)

如何避免此问题?

SELECT d1.gen_id as 'source',
d2.gen_id as 'target',
        c.date as 'timestamp'
from (
Select * from deed_party1
    ) as d1
    INNER JOIN
    (
    select * from deed_party1
    ) as d2
    on d1.deed_id = d2.deed_id
inner join contracts as c
on d1.deed_id = c.id
where d1.gen_id != d2.gen_id AND c.date between '1500-01-01' AND '1509-12-31';

感谢您的阅读和帮助,>

[我在十五世纪末建立了一个大西洋商人贸易数据库。我写了这个查询来查找同一合同中个人的关系。它工作正常,但是...

mysql sql duplicates
1个回答
0
投票

您只需要<而不是!=。但是子查询不是必需的,因此:

© www.soinside.com 2019 - 2024. All rights reserved.