我有一个SQL表结构,如:
ID UID Name PId Date
1 2 Admin 1 2015-04-25 21:10:40.060
3 28 Admin 1 2015-04-25 21:10:53.873
4 3 Viewer 1 2015-04-25 22:49:12.497
5 7 Admin 1 2015-04-25 22:49:34.670
6 28 Admin 2 2015-05-04 10:41:17.000
ID-> autoincrement, UID->UserId, PID-> projectId
此处可以将用户分配给一个或多个项目。因此,我将用户28分配给两个项目PID:1和2。
我希望所有未分配的用户都进行项目2.(即我的结果应该包含UID 2,3和7)。对于项目1,它将是没有。
任何帮助都将不胜感激。
修改
这就是我的尝试:
select UId
from A
group where PId!=2 by uId having COUNT(*)<2
我得到的数据是:
UID PID
2 1
3 1
7 1
28 1
最后一条记录UID = 28是不需要的行
答案 0 :(得分:2)
您可以在NOT IN
子句中使用WHERE
运算符
SELECT *
FROM yourtableName
WHERE UID NOT IN (SELECT UID
FROM #test
WHERE PID = 2)