私は本質的に次のことを解決しようとしています:
1)programID1のみを持つシステム内のすべてのユーザーを検索します。
2)programID1およびその他のアクティブなプログラムを持つシステム内のすべてのユーザーを検索します。
私のテーブル構造(非常に簡単な用語は次のとおりです):
ユーザー
userID | Name
================
1 | John Smith
2 | Lewis Black
3 | Mickey Mantle
4 | Babe Ruth
5 | Tommy Bahama
予定
ID | userID | plan | status
---------------------------
1 | 1 | 1 | 1
2 | 1 | 2 | 1
3 | 1 | 3 | 1
4 | 2 | 1 | 1
5 | 2 | 3 | 1
6 | 3 | 1 | 0
7 | 3 | 2 | 1
8 | 3 | 3 | 1
9 | 3 | 4 | 1
10 | 4 | 2 | 1
11 | 4 | 4 | 1
12 | 5 | 1 | 1
私は、次のような特定の計画を持つすべてのメンバーを簡単に見つけることができることを知っています。
SELECT * FROM users a JOIN plans b ON (a.userID = b.userID) WHERE b.plan = 1 AND b.status = 1
しかし、これはどのユーザーが「アクティブな」プランを持っているかを教えてくれるだけです1。
誰がプラン1のみ(この場合はuserID 5のみ)を持っているか、そして誰がプラン1と他のアクティブなプランを持っているかを知る方法を教えてください。
更新:これはカウントを取得するためのものではありません。実際には、元のメンバー情報が必要になります。これには、メンバーが持っているすべてのプランが含まれるため、COUNT(*)応答は私が達成しようとしているものではない可能性があります。