Access 2000教程:17.3 使用SQL语句联接表

2016-02-19 21:28 4 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的Access 2000教程:17.3 使用SQL语句联接表,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - 编程语言 】

  在SQL中,很多威力都来自于将几个表或查询中的信息联接起来,并将结果显示为单个逻辑记录集的能力。在这种联接中包括INNER、LEFT、RIGHT这三种JOIN操作。

  首先我们来讲讲INNER JOIN 的用法:INNER JOIN 语句可以用来组合两个表中的记录,只要在公共字段之中有相符的值即可,在语法上,INNER JOIN 是这样定义的。

  举个例子:我们现在要将“图书资料表”和“出版社资料表”联接起来,然后列出出版社所出的图书。让我们先看看这两个表,

  然后在SQL设计视图中输入以下内容

  现在我们执行这个SQL语句,

  发现现在的查询结果将所有出版社和图书都列了出来。

  这个查询好像也可以用下面的语句来实现。

  将两个查询都切换到数据表视图后我们会发现两个查询的查询结果虽然一样,但在使用INNER JOIN操作的查询中可以添加新的数据。就像在表中添加数据一样。而没有使用INNER JOIN 操作的查询就不能添加新数据,相比之下使用INNER JOIN操作的查询更像将两个具有相关内容的表联接在一起新生成的表。

  知道了它的用处,我们来看看LEFT JOIN 的结构:

FROM [表名1] LEFT JOIN [表名2]
ON [表名1.字段A] 〈关系运算符〉[表名2.字段B]

  其实LEFT JOIN 的功能就是将LEFT左边的表名1中的所有记录全部保留,而将右边的表名2中的字段B与表名1.字段A相对应的记录显示出来。而RIGHT JOIN 和LEFT JOIN 相反。

  所以刚才的那个例子还可以写成:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  单击工具栏上的“执行”按钮,我们看到这时显示的数据表和刚才显示的用LEFT JOIN 的数据表一样。现在看出来了吧,原来它们的功能是可以互换的。

  如果想将几个表联接起来,在JOIN操作中我们可以进行嵌套操作,有三个表:表1、表2、表3,现在将三个表联接起来:

FROM (表1 INNER JOIN 表2 ON 表1.序号=表2.序号)
INNER JOIN 表3
ON 表1.序号=表3.序号

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  这样这三个表就联接起来了。

来源:https://www.tulaoshi.com/n/20160219/1626227.html

延伸阅读
在使用过程中,我们经常会使用到一些查询,但这些查询用各种查询向导和设计器都无法做出来,不知道你还记不记得,在查询那一课中我们讲过SQL查询,用这种查询就可以完成比较复杂的查询工作。当时你还刚刚开始使用ACCESS,用设计视图和向导就可以建立很多有用的查询,这些足够你掌握一段时间了,而且它的功能已经基本上能满足我们的需要。而...
以下SQL语句在ACCESS XP的查询中测试通过 建表: Create Table Tab1 ( ID Counter, Name string, Age integer, [Date] DateTime); 技巧: 自增字段用 Counter 声明. 字段名为关键字的字段用方括号[]括起来,数字作为字段名也可行. 建立索引: 下面的语句在Tab1的Date列上建立可重复索引 Create Index iDate ON Tab1 ([Date]); 完成后...
1.所有记录的分页: SELECT TOP 页大小 * FROM Users WHERE (ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC)) //skip(页大小*(页数-1)) 条记录 ORDER BY ID DESC 2.符合条件记录的分页(注意此时你的查询条件要分布在两个查询语句中,谨记) SELECT TOP 页大小 * FROM Users WHERE +你的查询条件 AN...
标签: SQLServer
在Access中进行时间的比较sql语句很简单,如Select * From table Where thetime#"& Now() &"#这样即可     在MSSQL就不能这样,要用DateDiff语句和GetDate()函数进行比较。     如Select Count(*) From table Where DateDiff(s,GetDate(),thetime)0,我自己特别做了个50万条数据的的表,执...

经验教程

761

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部