![](/img/trans.png)
[英]Access: Issue Creating SQL View Through VBA - Unions not allowed in subquery
[英]Creating a view with a 'WHERE NOT IN' SQL subquery
我正在尝试将以下 SQL 查询转换为视图。
SELECT * FROM system_accounts
WHERE system_accounts.id
NOT IN (SELECT account_id
FROM system_group_members
WHERE system_group_members.group_id = 1);
换句话说,我如何创建一个视图来提供某个组的所有非成员,这些非成员来自系统已知的全部帐户集?
当我在我的 Adminer window 中测试它时,查询工作正常。 但是,我不知道如何在正确的 SQL 中表达变量group_id (在我的示例中为“1”)以获取视图。
我敢肯定我错过了一些微不足道的东西,但这是我会在几个小时内猛烈抨击的事情。 希望这里有好心人能帮助我。
非常感谢您的时间。
您可以创建一个包含所有组的所有非成员的视图。 然后你可以过滤到你想要的组:
CREATE VIEW v_nonmembers AS
SELECT g.group_id, sa.*
FROM system_groups g cross join
system_accounts sa LEFT JOIN
system_group_members sgm
ON gsm.group_id = g.group_id AND
gsm.account_id = sa.id
WHERE gsm.group_id IS NULL;
然后,您可以将其用作:
SELECT *
FROM v_nonmembers
WHERE group_id = 1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.