这对我来说是满口的。我的挑战之一是我不知道如何提出问题——这从标题中显而易见。
我将尝试说明我的问题:
我有一张桌子,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
和与表 A 相关联AID
。我想构建一个具有以下过滤器的查询:
Position = 1 AND Value = 4
并且Position = 3 AND Value = 5
它为我提供了一个不同 ID 的列表,A.ID
从中 stasify所有给定的标准。
我的意思是,如果我通过 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)
这显然行不通。我以为我有一个明确的解决方案,但当我想到它时,我真的没有。
我对这个问题有点难过,我很难寻找如何解决它的策略,因为我什至不知道在我的搜索中使用什么关键字。