sql - 如何在 Excel VBA 中嵌套查询

标签 sql excel vba ms-access

我不确定是否可能,但我正在尝试嵌套查询。
首先,我创建以下 2 个查询:

MyQuery = "Select * from " & "T1"
MyQuery2 = "Select * from " & "T2" 
然后我想比较两个查询并以下列方式返回差异:
mkQry = "SELECT (" & MyQuery & ").*" _
                & "FROM (" & MyQuery & ") LEFT JOIN (" & MyQuery2 & ") ON " _
                & "(" & MyQuery & ".F1) = " & MyQuery2 & ".F1) AND " _
                & "(" & MyQuery & ".F2 =  " & MyQuery2 & ".F2) AND " _
                & "(" & MyQuery & ".F3 =  " & MyQuery2 & ".F3) AND " _
                & "(" & MyQuery & ".F4 =  " & MyQuery2 & ".F4) AND " _
                & "(" & MyQuery & ".F5 =  " & MyQuery2 & ".F5)" _
                & "WHERE (((" & MyQuery2 & ".F5) Is Null))"
                
        Set MyRecordset99 = MyConnection2.Execute(mkQry)
        Worksheets("TST").Range("A1").CopyFromRecordset MyRecordset99
但是,mkQry包含 syntax error我不知道如何解决这个问题。
我的问题是:
是否可以按我尝试的方式或多或少地嵌套查询,如果是这样,我如何更新语法以使其工作。

最佳答案

您应该为每个子查询设置别名,然后在整个过程中使用别名。

mkQry = "SELECT x.* " _
                & "FROM (" & MyQuery & ") x LEFT JOIN (" & MyQuery2 & ") y ON " _
                & "(x.F1 = y.F1) AND " _
                ...
                & "(x.F5 = y.F5) " _
                & "WHERE (((y.F5) Is Null))"

关于sql - 如何在 Excel VBA 中嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71113185/

相关文章:

sql - 为什么查询中的 "Where 1 <> 1"会返回所有行?

sql - 将行合并为一个结果并将结果添加为 SQL 中的不同值

excel - VBA在单元格中添加图像给出不同的结果

vba - 在 Outlook VBA 中,如何更改主题以便它更改资源管理器 Pane 中的主题?

java - 带有 Select Query 的 Jooq AddCondition 方法

python - IntegrityError 后继续加载

vba - 暂停 VBA 并重新运行它会导致执行速度更快

vba - 使用 vba 添加超链接到名称

vba - Excel VBA宏代码不停地插入无限行

excel - 根据 Excel 单元格值选中/取消选中 Listobx 项目