[我在十五世纪末建立了一个大西洋商人贸易数据库。我写了这个查询来查找同一合同中个人的关系。它可以正常工作,但是会产生重复的结果,例如'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';
感谢您的阅读和帮助,>
[我在十五世纪末建立了一个大西洋商人贸易数据库。我写了这个查询来查找同一合同中个人的关系。它工作正常,但是...
您只需要<
而不是!=
。但是子查询不是必需的,因此: