【发布时间】:2021-03-17 08:57:07
【问题描述】:
我正在尝试将以下 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);
换句话说,我如何创建一个视图,为我提供某个组的所有非成员,这些非成员来自系统已知的全部帐户集?
当我在我的管理员窗口中测试它时,查询工作正常。但是,我不知道如何在视图的正确 SQL 中表达变量 group_id(在我的示例中为“1”)。
我确定我错过了一些微不足道的事情,但这是我会在几个小时内猛烈抨击的事情。希望这里的好心人能帮助我。
非常感谢您的宝贵时间。
【问题讨论】:
-
查看cannot be parametrized。搜索表值函数。其次,如果
account_id可以为空,您的查询可能不会返回任何行 -
非常感谢您简洁的回答。我会努力从不同的角度来解决我的问题:)
-
提防
NOT IN。如果数据中有空值,它不会像您认为的那样做。最好使用反连接并睡个好觉。