1

いくつかのコードについて助けが必要です

「stuff」というデータベーステーブルがあり、次の情報があります。

+------+-------------+---------------------+
| id   | member_id   |     group_id        |
+------+-------------+---------------------+
| 1    |      11     |         aa          |
+------+-------------+---------------------+
| 2    |      22     |         aa          |
+------+-------------+---------------------+
| 3    |      33     |         aa          |
+------+-------------+---------------------+
| 4    |      44     |         bb          |
+------+-------------+---------------------+
| 5    |      55     |         bb          |
+------+-------------+---------------------+
| 6    |      66     |         bb          |
+------+-------------+---------------------+

1 つのグループから 3 人のメンバーすべてを検索する場合、グループ ID を見つける必要があります

何かのようなもの:

SELECT group_id 
FROM stuff 
WHERE member_id=11 and member_id=22 and member_id=33 

クエリが有効でないことはわかっていますが、有効にする方法がわかりません。

どうもありがとうございました。

4

1 に答える 1

2

問題は と呼ばれRelational Divisionます。

SELECT  group_id
FROM    stuff
WHERE   member_id IN (11,22,33)
GROUP   BY group_id
HAVING  COUNT(*) = 3

member_idがすべてで一意でない場合は、一意の値のみをカウントするためにgroup_id必要です。DISTINCT

SELECT  group_id
FROM    stuff
WHERE   member_id IN (11,22,33)
GROUP   BY group_id
HAVING  COUNT(DISTINCT member_id) = 3

このリンクのその他のバリエーション:

于 2013-10-13T01:26:09.073 に答える