2

同じテーブルからの2つ以上のクエリにまたがって表示される値を返す必要があります。ここでは少し初心者のように感じますが、木のために木が見えません。

さまざまなグループに割り当てられたユーザーのテーブルがあります。要求されたすべてのグループに表示されるユーザーのみを返す必要があります。

User   Group
frank  1
Jane   2
Tom    2
frank  2
Jane   1
Tom    3

これは私が出力する必要があるものです:

Result for Group 1 & 2:
frank
Jane

Result for Group 2 & 3:
Jane
Tom

非常に101の質問のようですが、ポインタに感謝します。

4

2 に答える 2

3
select user from table
where group in (1,2)
group by user
having count(distinct group)=2
于 2012-07-18T10:45:48.817 に答える
3
select user
from users
where group_id in (1,2)
group by user
having count(*) = 2;

必要なhaving count(*) = 2グループ数に合わせて条件を調整する必要があります。

ユーザーを同じグループに複数回割り当てることができる場合、Madhivanan のコメントを考慮する必要があります。

select user
from users
where group_id in (1,2)
group by user
having count(distinct group_id) = 2;

(予約語であり、列名として使用する必要があるため、列名を使用しました)group_idgroup

于 2012-07-18T10:44:50.420 に答える