所以我有两个表,一个叫做cmdr_group,另一个叫做groupUser。我试图得到这个用户不在的所有组的列表,这被证明是相当困难的。 GroupUser每个组都有多个用户,每个用户都有自己的ID。
现在我理解为什么这个查询不会起作用,但我会把它放在这里来展示我的思考过程。
SELECT t1.*, t2.userID
FROM cmdr_group t1
LEFT JOIN groupUser t2 ON t2.groupID = t1.ID
WHERE t1.ID != (SELECT groupID FROM groupUser WHERE userID=90792652);
如果您需要有关表中内容的任何信息,请告诉我。
答案 0 :(得分:1)
现在我想我明白了。我会使用not in
或select g.*
from cmdr_group g
where not exists (select 1
from groupuser gu
where gu.userID = 90792652 and
gu.groupId = g.Id
);
:
not exists
此查询基本上遵循您的问题。整个查询将获取所有组。 Microsoft.Ace.OleDb
只是检查用户是否在该组中。