我试图从根本上解决以下问题:
1) 查找系统中只有 programID 1 的所有用户。
2) 查找系统中所有具有 programID 1 和任何其他活动程序的用户。
我的表格结构(简单来说如下):
用户
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(在这种情况下只有用户 ID 5)以及如何知道谁有计划 1 和任何其他活动计划?
更新:这不是要计数,我实际上需要原始成员信息,包括他们拥有的所有计划,因此 COUNT(*) 响应可能不是我想要实现的。