77百科网
当前位置: 首页 生活百科

join数据库查询(join在工作表数据查找中的应用)

时间:2023-06-30 作者: 小编 阅读量: 2 栏目名: 生活百科

大家好,我们继续讲解VBA数据库解决方案,今日讲解第56讲内容:数据表查询中,内连接Innerjoin的讲解。不要过多的纠缠于其中的算法,只要会利用就可以。还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹配行的所有行。返回与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。在每个表中找出符合条件的共有记录。大体上和上面的写法是一致的,读者可以根据自己的习惯利用。

大家好,我们继续讲解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后的字段去掉换成*号会是什么样的结果?

    推荐阅读
  • 核桃树枝的药用功效与作用 核桃树枝的药用功效与作用图片

    如果皮肤不慎患了牛皮癣、湿疹等皮肤病,可以采用核桃树皮来治疗。将核桃树皮和鸡蛋同煮之后,再食用,可以杀死体内的肿瘤细胞。

  • 这些标志你敢上路吗(这些标志您认识吗)

    今天我们一起认识绿色食品标志、有机食品标志、保健食品标志、药品相关标志、中国计量认证标志、工业产品生产许可证标志六类标志。A级允许限量使用限定的化学合成物质,而AA级则禁止使用化学合成物质。取得计量认证合格证书的检测机构,允许其在检验报告上使用CMA标记,有CMA标记的检验报告可用于产品质量评价、成果及司法鉴定,具有法律效力。

  • 自动挡的车为什么能用手动模式(自动挡车的手动模式有什么用)

    现在的车变速箱档位越来越多,8速9速10速都出来了,那都这么多挡了为什么依然会保留手动模式呢?

  • 即将被市场淘汰的五大汽车品牌(近期出现了不少新兴汽车品牌)

    按照之前未来的宣传攻势,这台车的目标对手预计将会是特斯拉ModelX。2015年底小鹏汽车造型评审2进1完成,2016年3月公司宣布已完成A轮融资,获得共计超过1亿美元的投资及贷款。据悉小鹏汽车目前已进入了量产准备阶段,2017年年底将进行小批量生产。首款产品将会是一款纯电动、智能化的SUV车型,计划将会在2018年正式推出。目前该车仍在最后测试阶段,暂时不接受预订。

  • 地下石油是怎样形成的(说出来你可能不信)

    地下石油是怎样形成的石油的主要成分是碳氢有机化合物的混合物,它占石油成分的97%~99%。目前大多数人认为石油是从埋藏在地下的生物尸体变来的。由于生物体内含有大量的碳、氢、氧等成分,在一般情况下,生物死后,它们的尸体很快就会腐烂,大量的碳和氧化合成二氧化碳散失掉了。随着地壳不断升降,沉积物不断加厚,有机淤泥在缺氧和温度、压力不断加大的条件下,加上细菌的作用,有机质发生复杂的化学变化,逐渐转变为石油。

  • 蝴蝶兰的花语是什么(有关蝴蝶兰花语)

    蝴蝶兰有很多品种每个品种的花语都有很大的差异不过,它们有一个总体的花语,就是“幸福的来临”而且,虽然不同品种有不同的花语,但是它们代表的寓意都是好的,我来为大家科普一下关于蝴蝶兰的花语是什么?不过,它们有一个总体的花语,就是“幸福的来临”。一般这种颜色的蝴蝶兰就象征着爱情。所以,它的花语也是如此,是“家庭美满”,以及“事业顺利”。

  • 男人养胃的菜谱(提醒男人年过40要)

    平时可以吃点七度方五黑糕,满足身体和味蕾的双重需求!紫薯山药饼是以紫薯泥为馅,紫薯和山药为饼皮搭配制作而成,好吃的同时营养也能补足。虽说三川归黑豆浆粉是一款速食豆浆粉,但它的营养和口感丝毫不输现磨豆浆。

  • 新冠疫苗药效多长时间(新冠疫苗能保护多久)

    我们一起去了解并探讨一下这个问题吧!新冠疫苗药效多长时间中国生物武汉生物制品研究所研制疫苗保护期在1-3年,美国瑞辉公司的疫苗人体产生抗体保护的时间推测至少有6个月至1年。世卫组织《新冠疫苗的目标产品特性》中说明,新冠疫苗最低要求提供至少6个月的保护,理想特性是至少1年的保护。之所以目前不能准确说出疫苗的保护时间,而是给出了一个1-3年的范围,是因为新冠疫苗保护的持续性观察还在进行当中。

  • 王者荣耀水果甜心会出星元吗(王者荣耀水果甜心会出星元)

    下面更多详细答案一起来看看吧!水果甜心被天美优化,在2020年6月份会出两款星元皮肤,这些星元都是属于大小姐的水果甜心和末日机甲。《王者荣耀》是由腾讯游戏天美工作室群开发并运行的一款运营在Android、IOS、NS平台上的MOBA类手机游戏,于2015年11月26日在Android、IOS平台上正式公测,游戏前期使用名称有《英雄战迹》、《王者联盟》。《ArenaOfValor》,即《王者荣耀》的欧美版本于2018年在任天堂Switch平台发售。