我尝试在子查询中使用复合条件,但它没有返回预期的结果。你能看看下面的例子,看看为什么查询不成功吗?
Table : 1
EntityID StartDate EndDate
121 2013-08-01 2013-08-31
122 2013-08-01 2013-08-31
123 2013-08-01 2013-08-31
Table : 2
EntityID AttributeID AttributeValue
121 41 304
122 41 304
123 41 304
123 54 307
现在,我正在尝试使用以下查询根据 Table-2 中的 AttributeID 和 AttribueValue 以及 table1 中的 Stardate 和 enddate 获取。(例如:41 和 304 以及 54 和 307 只对 123 感到满意,我只想获取 123 的一条记录)
SELECT pe.EntityID
FROM table1 pe
WHERE pe.StartDate = '2013-08-01'
AND pe.EndDate = '2013-08-31'
AND pe.EntityID IN (SELECT peaiv.EntityID
FROM table2 peaiv
WHERE peaiv.AttributeID IN (41)
AND peaiv.[Value] IN (304)
AND peaiv.EntityID IN (SELECT peaiv.EntityID
FROM
PT_EntityAttributesIntValues
peaiv
WHERE peaiv.AttributeID IN (54)
AND peaiv.[Value] IN (307))
EntitID
--------
121
122
123
返回上述结果的查询,但我只期望结果123。任何人都可以尝试这个。