【发布时间】:2020-09-25 08:37:24
【问题描述】:
为了让用户能够访问实体,用户必须拥有针对该实体配置的必要分类。分类具有不同属性类型的多个属性。用户同样具有多个属性。为了使用户满足分类的要求,他们必须将每种类型的至少一个属性应用于分类。
所以从下面的数据来看
dbo.Classification
ClassificationID ClassificatinName
10 Class1
dbo.Attribute
AttributeID AttributeName AttributeTypeID
1 Type1 Attr1 1
2 Type1 Attr2 1
3 Type2 Attr1 2
4 Type2 Attr2 2
dbo.ClassificationAttribute
ClassificationID AttributeID
10 1
10 2
10 4
dbo.EntityClassification
EntityID ClassificationID
100 10
dbo.UserAttribute
UserID AttributeID
1000 1
1000 4
2000 2
2000 3
UserID 1000 应该满足 ClassificationID 10 的要求,因此也满足 EntityID 100 的要求,因为它们具有针对该分类配置的每种类型的至少一个属性,但 User 200 不应该。我想最终返回的数据是:
UserID EntityID
1000 100
这如何在 SQL 中完成?
【问题讨论】:
-
“如何在 SQL 中最好地做到这一点?” 这是一个过于宽泛的问题。您在这里的具体问题是什么?您尝试过的方法无效怎么办,或者为什么您觉得它不是“最好的”?什么定义了“最佳”?
-
你忘了给我们表名。
-
抱歉,我的意思是如何做到这一点,最好或其他。
标签: sql sql-server inner-join having-clause relational-division