我对sql很新。实际问题要大得多。 我需要以下案例中的信息。说我有两个表,如
MemberTable
MonthID | UserID | TeamID
-----------------------------
1 | 1 | 6
1 | 2 | 6
1 | 3 | 6
1 | 4 | 6
AND
ReportTable
ID* | MonthID | UserID | IsSend
-----------------------------------
1 | 1 | 2 | False
2 | 1 | 3 | True
我需要ReportTable中不存在的用户总数以及IsSendValue为False的用户,即count = 3
是否可以在一个查询中执行此操作?如果无法解决,请说明。
答案 0 :(得分:4)
SELECT COUNT(DISTINCT UserID)
FROM MemberTable
WHERE UserID NOT IN (SELECT UserID FROM ReportTable)
OR UserID IN (SELECT UserID FROM ReportTable WHERE IsSend=FALSE)
应该返回UserID
1,2和4的用户。实现相同结果的更简洁的查询是:
SELECT COUNT(DISTINCT UserID)
FROM MemberTable
WHERE UserID NOT IN (SELECT UserID FROM ReportTable WHERE IsSend=TRUE)