连接查询也可以称之为多表连接查询
意思也就是在多表之间指定关系的连接,并且按照指定的条件进行数据查询,也就是组合两个或者多个工作表的数据,其结果通常是一个比较大的表
其语法为
Select Field From Table1,Table2 Where Table1.Field=Table2.Field
从语法中翻译来看
Select 字段名 From 表1,表2 Where 表1.字段名=表2.字段名
举个小李子

这个是一份水果表和颜色表,现需要将每个水果的颜色V过来
使用SQL语句
strSQL = "Select a.*,b.* From " & strSource & "a," & strSource1 & "b Where a.颜色序号=b.颜色代码"

这里可能会有小伙伴出现疑问,不是说好的
表1.字段=表2.字段的么,怎么变成了a.字段=b.字段...
也就是要按照以下这样写↓
strSQL = "Select [Sheet1$A1:B5].*,[Sheet1$D1:E5].* From [Sheet1$A1:B5],[Sheet1$D1:E5] Where [Sheet1$A1:B5].颜色序号=[Sheet1$D1:E5].颜色代码"
在这里由于两个表的表名在重复出现,代码写的不方便且阅读难以理解,我们可以使用表的别名进行简化,所以,我们经常可以在群里见到一些大佬们都是用aabb的写SQL...
连接查询的Where子句中用来连接多个表的条件被称之为连接条件或者连接谓词
也就是
Where a.Field 运算符 b.Field
运算符有:>,<>,<,<=,>=等
其中各连接字段类型必须是可比的,但是字段名可以不必相同,列如例子中的"Where a.颜色序号=b.颜色代码"
可以看得出来这里是一对一的关系,每一行中只与水果表的一行匹配
我们不难从结果中可以发现

颜色序号和颜色代码的记录都是一样的,我们只需要一个记录就可以了
strSQL = "Select a.*,b.颜色 From " & strSource & "a," & strSource1 & "b Where a.颜色序号=b.颜色代码"
亦或者
strSQL = "Select a.*,颜色 From " & strSource & "a," & strSource1 & "b Where a.颜色序号=b.颜色代码"
在来一个简单的例子

如上图所示,需要将连接班级学员以及学员成绩 得到结果表
从数据源中不难发现 两个表之间的公共字段为"姓名"字段且是唯一的
strSQL = "Select a.*,语文,数学,英语 From " & strSource & "a," & strSource1 & "b Where a.姓名=b.姓名"
多对多关系
...
算了,明天写
示例文件下载
链接:https://pan.baidu.com/s/1Lmoo42QwPT6KmW_xXxI0xg
提取码:abcd
收工!
如果小伙伴有好的思路,可以在小编的公众号留言发给小编研究下
文章觉得有用,点个赞+在看,你的每一次点赞和转发就是小编原创的动力
关注公众号 ↓
文章转载自Excel VBA练习,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




