sql - dplyr中的“NOT IN”sql命令使用来自不同查询的结果
问题描述
我一直在使用 dplyr 和 dbplyr 为我的 sql 服务器生成查询并提取数据,但我找不到执行NOT IN
sql 命令的方法。
我正在尝试生成这样的东西
SELECT * FROM EMPLOYEE WHERE ID NOT IN id_list
其中 id_list 是从 dplyr 中的另一个查询获得的
id_list <- mutate(uid = distinct(id)) %>% select(uid) %>% collect()
id_list
是一个 tbl_Microsoft SQL Server 对象。
生成 SQL 查询的 dplyr 代码是什么?
解决方案
Ronak Shah 的代码是正确的想法,但没有正确否定。现在它只是否定 ID 而不是否定比较的结果。
EMPLOYEE %>%
filter(!(ID %in% id_list)) %>%
collect()
如果您将比较放在括号中,然后否定比较的结果,您的查询将很好地工作(我在我拥有的数据库连接上对其进行了测试)。
推荐阅读
- hibernate - 从 IntelliJ idea 运行时未填充 Hibernate 集合
- groovy - groovy中的字符串插值
- sql - BigQuery 中不区分大小写的 LIKE
- python - Browsermob-Proxy - 通过 SSL 读取 XHR 的问题
- mysql - 删除带有感叹号和反引号的数据库
- json - 向模型添加新属性:转换现有 JSON
- react-native - 如何使用 Android Studio 查看 React Native 代码的变化
- python - 使用附加到列表的 for 循环进行多处理
- python - 我从命令行执行将参数传递给 URL,但由于连接无效而引发错误
- java - 无法使用 SMSmanager Android 将通话记录作为消息发送