以下是我的表格的简化版本。
FRID, RELFRID, Relationship
123, 456, Husband/Wife
456, 123, Wife/Husband
345, 765, Brother/Sister
765, 345, Sister/Brother
我想只拉一个关系的表示(只是每组两个记录中的一个)。我尝试了很多东西,包括EXCEPT和SUBSELECTS,我尝试的所有东西都没有结果,因为左边的每个数字也表示在右边。知道如何获得我正在寻找的结果吗?我已尝试过以下各种查询的组合。
select frid, relfrid from frrelmst
except
select frid, relfrid from frrelmst
where frid in (select relfrid from frrelmst)
order by frid, relfrid
Select frid, relfrid from frrelmst where
relfrid+frid not in (select frid+relfrid from frrelmst)
答案 0 :(得分:7)
简单:
select frid, relfrid from frrelmst where frid < relfrid
答案 1 :(得分:0)
我使用下面的SQL。如果表中只存在一种关系表示,它仍将被返回。
SELECT frid, relfrid, relationship
FROM frrelmst f
WHERE frid < relfrid
OR NOT EXISTS (
SELECT 1
FROM frrelmst
WHERE frid = f.relfrid
AND relfrid = f.frid
AND frid <= f.frid
)