技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 软件教程 > wps教程 >

如何使用WPS表格嵌套查询与连接查询

来源:技术员联盟┆发布时间:2017-06-16 00:48┆点击:

  小编在这给大家讲讲WPS表格嵌套查询与连接查询

  先来看一下这个文件的内容:

如何使用WPS表格嵌套查询与连接查询    三联

WPS表格嵌套查询与连接查询教程

WPS表格嵌套查询与连接查询教程

  下面,我们还是采用查询学生课程.et这个文件来做查询:

  示例1:查询与"刘晨"同学在同一个系学习的学生(显示学号、姓名、系名)

  分析,先查出"刘晨"同学所在的系名,然后再由查出的系名查出最后结果,这里用到嵌套查询,请注意写法

  SELECT [学号],[姓名],[所在系]

  FROM [学生表$]

  WHERE [所在系] IN

  (

  SELECT [所在系]

  FROM [学生表$]

  WHERE [姓名]='刘晨'

  )

  复制代码

WPS表格嵌套查询与连接查询教程

  另一个方法:在上面,子查询(括号部分)和父查询都是对同一张表进行的,我们如果将这张表想象成两张,让这两张表进行自身连接,也可以同样达到目的,这里我们用所在系这一项进行连接

  SELECT [A].[学号],[A].[姓名],[A].[所在系]

  FROM [学生表$] [A],[学生表$] [B]

  WHERE [A].[所在系]=[B].[所在系] AND [B].[姓名]='刘晨'

  复制代码

WPS表格嵌套查询与连接查询教程

  这里与前面不同的就是第二行:FROM [学生表$] [A],[学生表$] [B]

  [学生表$] [A]的意思是为学生表这个表定义一个别名,名称为A,[学生表$] [B] 同理

  这里的意思就是从查询A表的学号,姓名,所在系三项

  查询的表格来自A表和B表

  查询条件是让B表的姓名项为刘晨,并且让A表和B表根据所在系进行进行连接。

  这其实和多表查询是一样的,只是这里的"多表"其实本质是同一个表的两个不同名称,我们称之为自表连接!

  再来看一个例子:

  示例2:查询选修了课程名为"信息系统"的学生学号和姓名

  分析:先从第二个表课程表中查出"信息系统"这门课的课程号,然后由课程号在选课表中查出学生学号,再由这个学号到学生表中查出所需信息

  SELECT [学号],[姓名]

  FROM [学生表$]

  WHERE [学号] IN

  (

  SELECT [学号]

  FROM [选课表$]

  WHERE [课程号] IN

  (

  SELECT [课程号]

  FROM [课程表$]

  WHERE [课程名]='信息系统'

  )

  )

  复制代码

WPS表格嵌套查询与连接查询教程

  另一个方法,我们同样可以用连接查询来解决这个问题:

  SELECT [学生表$].[学号],[姓名]

  FROM [学生表$],[课程表$],[选课表$]

  WHERE [学生表$].[学号]=[选课表$].[学号] AND

  [选课表$].[课程号]=[课程表$].[课程号] AND

  [课程表$].[课程名]='信息系统'

  复制代码

WPS表格嵌套查询与连接查询教程

  总结:

  1.在SQL语言中,对于比较复杂的查询,往往有多种方法可以选择,比较常用的就是嵌套查询与连接查询。

  这两种方法都可以单表查询和多表查询。

  2.相对于连接查询,嵌套查询语法结构比较有条理,思路清晰,更容易理解。

  3.两种方法没有优劣之分,两者的查询原理不同(你会发现,在不排序的情况下,两种方法查询出来的结果显示顺序是不一样的)在特定的数据环境下,两种方法的效率是不同的,可能前者高,也可能后者高。所以数据库的管理者会根据不同的数据选择上述两种方法。