我有下表:
id
c_id
ch_id
我想过滤该列表,以便接收c_id
列表中包含所有ID的所有ch_id
。
c_id
可以有多个ch_id
。例如,如果列表包含“2,5
”整数。我应该得到c_id,每个c_id至少包含该列表中的值。
例如,我得到返回c_id
3,因为以下行对应于查询:
c_id
也有ch_id = 6
,但没关系,因为它至少需要列出列表中的那些ch_id。我不知道如何处理这个问题,我们将不胜感激。
我虽然是按c_id
对表格进行分组,但表格可能非常大,我认为可能会在一段时间后使查询速度变慢。
我正在尝试在LINQ / Entity Framework中实现此查询。
答案 0 :(得分:1)
担心分组太慢听起来像是对我的过早优化。分组是正确的解决方案,可能更快的方法取决于了解有关数据的更多详细信息。
var ans = from r in src group r by r.c_id into rg where desiredch.All(ach => rg.Any(r => r.ch_id == ach)) select rg.Key;