前面几天写了几种连接查询
突然发现一开始的标题写错了...改天没写文章的时候要换个标题才行...
写了几天的连接查询,今天到外连接了,也是在SQL中比较常用的语法之一~
在SQL IN EXCEL 里只有左连接和右连接两种,只需要搞明白一种即可...
为什么?
往下看↓
先看左连接的语法
From Table1 Left Join Table2 On Table1.Field Comp Table2.Field
是不是感觉和内连接查询一样...
只是把 INNER JOIN 换成了 LEFT JOIN 就成了左连接,而右连接则是 RIGHT JOIN
...
INNER(内)
LEFT(左)
RIGHT(右)
...
相当的好记,我们来看下这几个有啥区分
左连接
如下图所示,还是拿内连接的例子来弄...

如果使用之前的内连接查询会返回一下结果
strSQL = "Select 学员ID,姓名,性别,课程名称 From " & strSource & "a Inner Join " & strSource1 & "b on a.课程ID=b.课程ID"

结果明显少了学员,这并非我们想要的结果,我们需要找到就匹配,找不到就空着...,也就是不管找不找得到都返回左边(学员表)所有的记录
strSQL = "Select 学员ID,姓名,性别,课程名称 From " & strSource & "a Left Join " & strSource1 & "b on a.课程ID=b.课程ID"

语句中,只需要吧INNER 更改为 LEFT ...
右连接
和左连接一样

strSQL = "Select a.学员ID,姓名,性别,语文,数学 From " & strSource & "a Right Join " & strSource1 & "b on a.学员ID=b.学员ID"

从上述中可以发现如果使用左连接就返回左边所有记录行,而使用右连接则返回右边所有的记录行
之前说外连接只有左连接和右连接
其实也可以全外连接,,用UNION 变通下即可
外连接

strSQL = "Select 学员ID,姓名,性别,课程名称 From " & strSource & "a Left Join " & strSource1 & "b on a.课程ID=b.课程ID"strSQL = strSQL & " Union "strSQL = strSQL & "Select 学员ID,姓名,性别,课程名称 From " & strSource & "a Right Join " & strSource1 & "b on a.课程ID=b.课程ID "

这里使用了UNION运算符合并了2个查询结果...
示例文件下载
链接:https://pan.baidu.com/s/1KdbdzNchV7Jh014ExlIHjA
提取码:abcd
收工!
如果小伙伴有好的思路,可以在小编的公众号留言发给小编研究下
文章觉得有用,点个赞+在看,你的每一次点赞和转发就是小编原创的动力
关注公众号 ↓
文章转载自Excel VBA练习,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




