天涯论坛

 找回密码
 立即注册
搜索
查看: 58|回复: 8

工作表查询中,内连接Inner join的讲解

[复制链接]

3044

主题

119

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99159072
发表于 2024-8-4 15:51:00 | 显示全部楼层 |阅读模式

大众好,咱们继续讲解VBA数据库处理方法,今日讲解第56讲内容: 数据表查找中,内连接Inner join的讲解。从这讲起始大众实例讲解在查找各样连接方式的应用。为何此刻才讲解这块内容呢?是的,非常多的内容我在之前的文案已然起始利用了,相信大众已然起始有所认识或许只是概念的欠缺,同期,随着讲解的深入大众发掘SQL语句是操作数据库的一个非常重要的工具,我的观点始终是:搭积木思想。不要太多的纠缠于其中的算法,只要会利用就能够。至于为何这么写,那是专业人员的事情。

好了,先给大众简单的解释一下什么是内连接,内连接的查找操作及其特点。

内连接叫连接,是最早的一种连接。还能够叫作为普通连接自然连接,内连接是从结果表中删除与其他被连接表中匹配行的所有行。返回与连接要求匹配的数据行,它运用比较运算符比较被连接列的列值。在每一个表中找出符合要求的共有记录。

实例情景,下面的两个工作表,一个是"数据",一个是"数据1"。我要把其中有型号同样的数据提取出来,然则型号,生产厂,数量来自"数据"工作表,而供应商的数据来自"数据2"的数据。

下面看我给出的内连接的代码,其实代码并不难:

Sub mynzRecords_56() 第56讲

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Worksheets("56").Select

Cells.ClearContents

Set cnADO = CreateObject("ADODB.Connection")

Set rsADO = CreateObject("ADODB.Recordset")

strPath = ThisWorkbook.FullName

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties=excel 12.0;hdr=yes;imex=1;data source=" & strPath

strSQL = "Select a.型号,a.生产厂,a.数量,b.供应商 From [数据$]as a,[数据2$] as b Where a.型号=b.型号"

strSQL = "Select a.型号,a.生产厂,a.数量,b.供应商 From [数据$] as a INNER JOIN [数据2$] as b ON a.型号=b.型号"

rsADO.Open strSQL, cnADO, 1, 3

For i = 1 To rsADO.Fields.Count

Cells(1, i) = rsADO.Fields(i - 1).Name

Next

Range("a2").CopyFromRecordset rsADO

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代码截图:

代码讲解:

1 cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties=excel 12.0;hdr=yes;imex=1;data source=" & strPath

此语句的代码创立起ADO和Excel的连接,大众能够直接利用,只要是连接07版本以上的EXCEL就可

2 strSQL = "Select a.型号,a.生产厂,a.数量,b.供应商 From [数据$]as a,[数据2$] as b Where a.型号=b.型号"

此语句的代码为一个典型的SQL内连接的语句,用的是WHERE的表达式,大众重视我字段的写法和定义a,b 两个数据表的写法。不能够有丝毫的错误。

3 strSQL = "Select a.型号,a.生产厂,a.数量,b.供应商 From [数据$] as a INNER JOIN [数据2$] as b ON a.型号=b.型号"

此语句的代码为一个典型的SQL内连接的语句的另一种写法,用的是的INNER JOIN….on…的表达式,大众重视这种写法和定义a,b 两个数据表的写法。大体上和上面的写法是一致的,读者能够按照自己的习惯利用。

下面看代码的运行:

大众重视以上型号为QQ01的供应商为RRR05是取自数据2的数据。

今日内容回向:

1 什么是内连接?

2 内连接的两种表法方式是什么?

3 倘若将select后的字段去掉换成*号会是什么样的结果?





上一篇:克罗恩病病人左脑岛及右后顶叶皮层厚度与功能连接反常
下一篇:SQL入门教程第15课:什么是内连接
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-8-22 05:46:33 | 显示全部楼层
你的言辞如同繁星闪烁,点亮了我心中的夜空。
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-8-28 08:13:08 | 显示全部楼层
你的见解独到,让我受益匪浅,非常感谢。
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-9 23:59:56 | 显示全部楼层
谷歌网站排名优化 http://www.fok120.com/
回复

使用道具 举报

3058

主题

2万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99139064
发表于 2024-10-13 17:04:23 | 显示全部楼层
你的言辞如同繁星闪烁,点亮了我心中的夜空。
回复

使用道具 举报

3119

主题

2万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99108641
发表于 2024-10-14 04:31:51 | 显示全部楼层
你字句如珍珠,我珍藏这份情。
回复

使用道具 举报

3043

主题

2万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065868
发表于 2024-10-15 08:03:52 | 显示全部楼层
我们有着相似的经历,你的感受我深有体会。
回复

使用道具 举报

3044

主题

2万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109056
发表于 2024-10-24 23:09:20 | 显示全部楼层
“板凳”(第三个回帖的人)‌
回复

使用道具 举报

3086

主题

2万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098782
发表于 2024-11-12 02:51:24 | 显示全部楼层
楼主继续加油啊!外链论坛加油!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 12:39 , Processed in 0.103804 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.