【发布时间】:2015-02-02 00:49:27
【问题描述】:
这对我来说是满口的。 我面临的挑战之一是我不知道如何提出问题 - 这从标题中显而易见。
我将尝试说明我的问题:
我有一张桌子,A:
ID LocationID
11 185
12 185
13 206
还有一张桌子 B:
ID AID Position Value
1 11 1 4
2 11 3 8
3 11 5 4
4 12 1 4
5 12 2 4
6 12 3 5
表 B 通过 ID 和 AID 关联到表 A。我想构建一个具有以下过滤器的查询:
Position = 1 AND Value = 4 和 Position = 3 AND Value = 5 并为我提供了来自 A.ID 的不同 ID 的列表,这些 ID 稳定了所有给定的标准。
我的意思是,如果我通过 INNER JOIN 将两个表连接在一起,我只希望拥有A.ID = 12。
我自己解决这个问题的开始是这样的:
SELECT DISTINCT A.ID
FROM A
INNER JOIN B ON (A.ID = B.AID)
WHERE
A.LocationID = 185 AND
(B.Position = 1 AND B.Value = 4) OR
(B.Position = 3 AND B.Value = 5)
这显然行不通。我以为我有一个明确的解决方案,但当我想到它时,我真的没有。
我有点被这个问题难住了,我很难寻找解决这个问题的策略,因为我什至不知道在我的搜索中使用什么关键字。
【问题讨论】:
标签: sql sql-server join set-theory