我的桌子看起来像这样
DocumentID AttributeID LongValue StringValue BooleanValue
100 1 null null 1
100 2 123 null null
100 3 null test null
每个attributeID 都是一种类型,只有该列被填充,其他所有内容为空。一个文档可以有多个属性。
我的查询要求我在哪里找到文档
Attribute ID 1 has value 1
Attribute ID 2 has value 123
Attribute ID 3 has value test
我正在写这样的查询
select documentID
from table
where (
(AttributeID=1 AND BooleanValue=1) AND
(AttributeID=2 AND LongValue=123) AND
(AttributeID=3 AND StringValue="test"))
显然,尽管文档 100 满足我的限制,但上述查询给我的结果为零。如何更改我的查询以获取文档 ID 100 作为结果?