大家好,如果您还对inner join是什么意思、读音不太了解,没有关系,今天就由本站为大家分享inner join是什么意思、读音的知识,包括工作表查询中,内连接Inner join的讲解的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
大家好,我们继续讲解VBA数据库解决方案,今日讲解第56讲内容:数据表查询中,内连接Innerjoin的讲解。从这讲开始给大家实例讲解在查询中各种连接方式的应用。为什么到现在才讲解这块内容呢?是的,很多的内容我在之前的文章中已经开始利用了,相信大家已经开始有所了解或许只是概念的欠缺,同时,随着讲解的深入大家发现SQL语句是操作数据库的一个非常重要的工具,我的观点一直是:搭积木思想。不要过多的纠缠于其中的算法,只要会利用就可以。至于为什么这么写,那是专业人员的事情。
好了,先给大家简单的解释一下什么是内连接,内连接的查询操作及其特点。
内连接也叫连接,是最早的一种连接。还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其他被连接表中没有匹配行的所有行。返回与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。在每个表中找出符合条件的共有记录。
实例情景,下面的两个工作表,一个是"数据",一个是"数据1"。我要把其中有型号一样的数据提取出来,但是型号,生产厂,数量来自"数据"工作表,而供应商的数据来自"数据2"的数据。
下面看我给出的内连接的代码,其实代码并不难:
SetcnADO=CreateObject("ADODB.Connection")
SetrsADO=CreateObject("ADODB.Recordset")
cnADO.Open"provider=Microsoft.ACE.OLEDB.12.0;extendedproperties='excel12.0;hdr=yes;imex=1';datasource="&strPath
strSQL="Selecta.型号,a.生产厂,a.数量,b.供应商From[数据$]asa,[数据2$]asbWherea.型号=b.型号"
'strSQL="Selecta.型号,a.生产厂,a.数量,b.供应商From[数据$]asaINNERJOIN[数据2$]asbONa.型号=b.型号"
Cells(1,i)=rsADO.Fields(i-1).Name
Range("a2").CopyFromRecordsetrsADO
1cnADO.Open"provider=Microsoft.ACE.OLEDB.12.0;extendedproperties='excel12.0;hdr=yes;imex=1';datasource="&strPath
此语句的代码建立起ADO和Excel的连接,大家可以直接利用,只要是连接07版本以上的EXCEL即可。
2strSQL="Selecta.型号,a.生产厂,a.数量,b.供应商From[数据$]asa,[数据2$]asbWherea.型号=b.型号"
此语句的代码为一个典型的SQL内连接的语句,用的是WHERE的表达式,大家要注意我字段的写法和定义a,b两个数据表的写法。不可以有丝毫的错误。
3'strSQL="Selecta.型号,a.生产厂,a.数量,b.供应商From[数据$]asaINNERJOIN[数据2$]asbONa.型号=b.型号"
此语句的代码为一个典型的SQL内连接的语句的另一种写法,用的是的INNERJOIN….on…的表达式,大家要注意这种写法和定义a,b两个数据表的写法。大体上和上面的写法是一致的,读者可以根据自己的习惯利用。
大家要注意,上述型号为QQ01的供应商为RRR05是取自数据2的数据。
3如果将select后的字段去掉换成*号会是什么样的结果?
好了,文章到此结束,希望可以帮助到大家。