1

我有一张这样的桌子。

Image_ID    Person_Ref  FileName    Effect_Ref
1            1           EU000101.jpg            1
2            1           EU000106.jpg            6
3            2           EU000201.jpg            1
4            2           EU000202.jpg            2
5            2           EU000203.jpg            3
6            3           EU000301.jpg            1
7            3           EU000306.jpg            6
8            4           EU000401.jpg            1
9            5           EU000501.jpg            1
10           5           EU000504.jpg            4
11           5           EU000505.jpg            5
12           6           EU000601.jpg            1
13           6           EU000604.jpg            4
14           6           EU000605.jpg            5
15           7           EU000701.jpg            1
16           7           EU000704.jpg            4
17           7           EU000705.jpg            5
18           8           EU000801.jpg            1
19           8           EU000806.jpg            6

现在我想获取所有必须具有 Effect_Ref 的 Person_Ref,比如说 1、2、3

我尝试过这样的事情,但我知道这不是我想要的

select distinct * from Images where Effect_ref IN (1,2,3) order by Effect_ref 
4

1 回答 1

1

您需要计算与您的条件匹配的记录实例(等于提供的参数的数量 in )。IN试试这个,

SELECT Person_REF
FROM tableName
WHERE Effect_REF IN (1,2,3)
GROUP BY Person_REF
HAVING COUNT(*) = 3

SQLFiddle 演示

于 2012-09-22T07:42:14.000 回答