懂数据库的大V们快来帮帮忙吧!(已解决,谢谢各位!)

  • 主题发起人 主题发起人 ceres
  • 开始时间 开始时间

ceres

知名会员
注册
2004-05-16
消息
327
荣誉分数
27
声望点数
188
有一个table存的数据类似是
RELATIONSHIP_ID ENTITY1_ID ENTITY1_ROLE ENTITY2_ID ENTITY2_ROLE
1 1001 Wife 1002 Husband
2 1002 Husband 1001 Wife
3 1003 Husband 1004 Wife
4 1004 Wife 1003 Husband
5 1006 Mother 1007 Daughter
6 1007 Daughter 1006 Mother
7 1007 Daughter 1008 Father
8 1008 Father 1007 Daughter
两个ENTITY_ID 引用同一个table,从数据上看两个entity 的关系是双向的1001->1002 and 1002->1001. 现在我只想要其中的一个,怎么取?
 
最后编辑:
老公,老婆,老妈,老爸,闺女.......看来是木儿子
 
误操作,还没打完就发出去了:shy:,现在已经完善了,请看一楼。
 
不懂数据库不是大V
select * from table_name
where table_name.ENTITY1_ID<table_name.ENTITY2_ID
你说的很含混,不如把原题贴上来。只从这8行记录,基于数据的局限性,可以有N种不同的做法。但在假设不成立的条件下,几乎不能说出那个是你需要的答案。要知道,用汉语,而且是模棱两可的汉语随意表达的数据库查询要求,是会导致混乱的答案的。

上面就是一种,但是几乎可以肯定太局限于这8行数据,不是你想要的,也不是你老师想要的答案。

你想要只保留正向反向的一个关系,但即使这样表达,依然还有很多事情没说清楚。
 
最后编辑:
用两个VRRAY,hold 两个entity, 然后用cursor?
 
不懂数据库不是大V
select * from table table_name
where table_name.ENTITY1_ID<table_name.ENTITY2_ID
你说的很含混,不如把原题贴上来。只从这8行记录,基于数据的局限性,可以有N种不同的做法。但在假设不成立的条件下,几乎不能说出那个是你需要的答案。要知道,用汉语,而且是模棱两可的汉语随意表达的数据库查询要求,是会导致混乱的答案的。

上面就是一种,但是几乎可以肯定太局限于这8行数据,不是你想要的,也不是你老师想要的答案。

你想要只保留正向反向的一个关系,但即使这样表达,依然还有很多事情没说清楚。
是个好主意,我试试,多谢!
 
后退
顶部