暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VBA SQL 内连接查询

Excel VBA练习 2021-07-15
1127

前两天写的连接查询使用Where的多表连接查询


今天来撸下内连接查询的INNER JOIN

其语法为

    Form 表1 Inner Join 表2 On 表1.字段 运算符 表2.字段

    如果是多表的连接可以这样写

      Form (表1 Inner Join 表2 On 表1.字段 运算符 表2.字段) Inner Join 表3 
      On 表1.字段 运算符 表3.字段...

      例如下图所示


      现需要查询学员ID,姓名,性别,课程名称以及教师的姓名

      运行如下


        strSQL = "Select 学员ID,姓名,性别,课程名称,教师姓名 From (" & strSource & "a Inner Join " & strSource1 & "b on a.课程ID=b.课程ID) Inner Join " & strSource2 & "c On a.教师ID=c.教师ID"

        当然也可以使用Where

          strSQL = "Select 学员ID,姓名,性别,课程名称,教师姓名 From " & strSource & "a," & strSource1 & "b," & strSource2 & "c Where a.课程ID=b.课程ID and a.教师ID=c.教师ID"


          如果需要查询杨怡欢老师的信息等


            strSQL = "Select 学员ID,姓名,性别,课程名称,教师姓名 From (" & strSource & "a Inner Join " & strSource1 & "b on a.课程ID=b.课程ID) Inner Join " & strSource2 & "c On a.教师ID=c.教师ID Where 教师姓名='杨怡欢'"


            Inner Join 在SQL中是比较常用的操作,只要在多个表的公共字段存在相匹配的值,INNER连接就会组合这些表中的记录


            如果更改为以下的样式



            学员表.课程ID=课程表.课程ID 而 课程表.课程名称=教师姓名.课程名称

            可能会有小伙伴想到

              strSQL = "Select 学员ID,姓名,性别,课程名称 ,教师姓名 From "
              strSQL = strSQL & "(" & strSource & "Inner Join " & strSource1 & "on a.课程ID=b.课程ID"
              strSQL = strSQL & "Inner Join " & strSource2 & "c On b.课程名称=c.课程名称"


              结果会返回这样的错误信息


              这里应该用子查询来查询

                strSQL1 = "Select a.*,教师姓名 From " & strSource1 & "a Inner Join " & strSource2 & "b On a.课程名称=b.课程名称"
                strSQL = "Select 学员ID,姓名,性别,课程名称,教师姓名 From " & strSource & "a Inner Join (" & strSQL1 & ")b On a.课程ID=b.课程ID Order By 学员ID"

                strSQL1做为子查询返回一个记录集,跟着在使用INNER JOIN连接查询

                当然,这里也可以使用Where查询

                  strSQL = "Select a.学员ID,a.姓名,a.性别,b.课程名称,c.教师姓名 From " & strSource & "a," & strSource1 & "b," & strSource2 & "c Where a.课程ID=b.课程ID And b.课程名称=c.课程名称 Order By a.学员ID"


                  示例文件下载


                  链接:https://pan.baidu.com/s/1uzpdkFTsMC4JS3Y_an0QBw

                  提取码:abcd


                  收工!

                  如果小伙伴有好的思路,可以在小编的公众号留言发给小编研究下

                  文章觉得有用,点个赞+在看,你的每一次点赞和转发就是小编原创的动力

                  关注公众号 ↓

                  文章转载自Excel VBA练习,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论