sql - VBA ADO Excel 驱动程序 SQL 除外/减号运算符
问题描述
我有 2 个表(新数据和旧数据)并且想要查询旧数据中不存在的所有新行。
SELECT * FROM new
EXCEPT
SELECT * FROM prev
我想用 VBA ADO 中的 'EXCEPT/MINUS' 运算符(使用 Excel 工作表作为表格)来执行此操作,但是似乎 EXCEPT 不是一个可接受的运算符?
我收到运行时错误
[Microsoft][ODBC Excel Driver] Syntax error in FROM clause.
它只是 ADO ODBC Excel 驱动程序中没有的功能吗?其他查询工作得很好。
提前致谢!
解决方案
您需要LEFT JOIN
在两个表之间执行 a ,然后仅选择NewTable中没有对应条目的行OldTable。为此,您需要确定两个表中的哪些字段相互对应。
SELECT * FROM NewTable
LEFT JOIN OldTable ON NewTable.Field1 = OldTable.Field1
WHERE OldTable.Field1 IS NULL
推荐阅读
- bash - 使用 psql 命令时 shellscript 出错
- google-analytics - 如何设置 Google Analytics Global Site Tag (gtag.js) 使用的 cookie 的“安全”属性?
- node.js - Vuex vuejs nodejs 维护和存储到 API 的多个连接
- php - 如何从本地存储中获取每个用户在 laravel 6 中登录的数据?
- c++ - c++中双端队列数据结构的大O是什么?
- sql - Yii2 Gridview 过滤器仅返回一行时出现错误异常
- bash - 从 XY 文件中选择带有替换的随机行
- aws-cli - 如何使用 aws wafv2 cli 在 ip-set 中添加一个 IP?
- list - 列表索引超出范围异常 - 无法通过在 python 中打开文本文件来打印值列表
- nas - 如何格式化支持硬件 RAID 的磁盘盒中的存储驱动器