Sql 如何获得多个集合的交集,但忽略不交集的集合
嗨,我想从一个表中获取元素,我感兴趣的元素依赖于用户选择的许多变量,这些变量包括单选按钮下拉列表和选择列表。每个变量将决定我希望从表中获得哪些ID 我需要能够忽略不相交或为空的变量 这里有一个例子Sql 如何获得多个集合的交集,但忽略不交集的集合,sql,database,linq,set,set-theory,Sql,Database,Linq,Set,Set Theory,嗨,我想从一个表中获取元素,我感兴趣的元素依赖于用户选择的许多变量,这些变量包括单选按钮下拉列表和选择列表。每个变量将决定我希望从表中获得哪些ID 我需要能够忽略不相交或为空的变量 这里有一个例子 Set A = {1,2,3,4,5} Set B = {2,5,6,7,8} Set C = {Cat, Dog} A交点B交点C=={} 但我需要答案{2,5} 有没有一种方法可以不使用条件语句就从这些集合中获取这些信息?我有很多变量,如果可能的话,我想在一个语句中这样做 谢谢你会想要这样的东西
Set A = {1,2,3,4,5}
Set B = {2,5,6,7,8}
Set C = {Cat, Dog}
A交点B交点C=={}
但我需要答案{2,5}
有没有一种方法可以不使用条件语句就从这些集合中获取这些信息?我有很多变量,如果可能的话,我想在一个语句中这样做
谢谢你会想要这样的东西:
var results =
from x in X
from y in Y
where x == y || X.All(item => !Y.Contain(item))
select x;
基本思想是:如果存在任何交集,则包含交集;如果不存在交集,则包含所有项。我通过获取每个表的不同元素(我需要将其作为列表)来实现这一点 接下来,我创建了一个类型为 每次我发现一个新的对象并将其添加到字典中时,我都会逐一查看每个列表。如果对象已经存在,我会增加该对象的计数值 之后,我在字典中找到了最高的int Max值 然后,我从字典中选择了计数与Max匹配的对象
我本想做些更干净的事,但嘿,它行得通。这对我来说很好,我只是在开发一个原型。LINQ还是SQL?您没有指定…Linq更可取,但我使用的是SQL数据库,因此如果Linq不支持此操作,而SQL支持此操作,我可以在Linq语句中使用SQL如果您有B={2,5,6,7,8,Cat,Dog},该怎么办?你会期望结果是什么?我仍然期望{2,5}