假设我与列ID
,GROUP_ID
和DATA
有关系; {ID
}是关键。我向用户展示了一些根据他们喜欢的方式选择行子集的方法,但我必须将他们的选择扩展为始终包含整个组。我现在正在做什么(其中filter
是用户提供的函数,而r
是我的原始关系):
r' = r ⋉ π{GROUP_ID} (r ⋉ π{ID} (filter r))
(或者,使用函数名称:
r' = semiJoin r (project {GROUP_ID} (semiJoin r (project {ID} (filter r))))
)
有没有办法在避免r
上的双半连接时获得相同的结果?由于它是用户提供的,我不想信任"信任"函数filter
;特别是,我不想要filter r
r
ID
}作为关键ID
r
我想要的唯一要求是r
有一列ID
。