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) をカウントする必要があります。これを試して、

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 に答える