&引用;不在「;使用来自不同查询的结果在dplyr中执行sql命令

&引用;不在「;使用来自不同查询的结果在dplyr中执行sql命令,sql,r,dplyr,dbplyr,Sql,R,Dplyr,Dbplyr,我一直在使用dplyr和dbplyr为我的sql server生成查询并提取数据,但我找不到执行NOT INsql命令的方法 我正在尝试生成类似这样的东西 从ID不在ID_列表中的员工中选择* 其中,id_列表是从dplyr中的另一个查询中获得的 id\u列表%select(uid)%%>%collect() id\u list是一个tbl\u Microsoft SQL Server对象 生成SQL查询的dplyr代码是什么?Ronak Shah的代码是正确的想法,但不是正确的否定。现在它

我一直在使用dplyr和dbplyr为我的sql server生成查询并提取数据,但我找不到执行
NOT IN
sql命令的方法

我正在尝试生成类似这样的东西

从ID不在ID_列表中的员工中选择*
其中,id_列表是从dplyr中的另一个查询中获得的

id\u列表%select(uid)%%>%collect()
id\u list
是一个tbl\u Microsoft SQL Server对象


生成SQL查询的dplyr代码是什么?

Ronak Shah的代码是正确的想法,但不是正确的否定。现在它只是对ID求反,而不是对比较结果求反

EMPLOYEE %>% 
filter(!(ID %in% id_list)) %>%
collect()

如果将比较放在括号中,然后否定比较结果,则查询将很好地工作(我在一个DB连接上测试了它)。

否定%%中的
%。
EMPLOYEE[!EMPLOYEE$ID%在%ID\u列表中]
或使用
dplyr
EMPLOYEE%>%过滤器(!ID%在%ID\u列表中)
谢谢。%中的否定
%无效。但我认为过滤功能可以完成这项工作。编辑:这个!ID抛出了一个sql错误
as.data.frame(ID_list)$uid
trickPlease是否看到了我发布的一个答案,该答案说明了如何使用dbplyr否定此查询。Ronak Shah的答案是正确的,只需在否定之前将比较放在括号中即可。谢谢。我遇到的主要问题是,
id\u列表
是一个tible,我必须将它转换成一个向量,正如我在评论中提到的那样。然后我将向量与上面的代码片段一起使用。