欢迎来到天天文库
浏览记录
ID:15765102
大小:222.50 KB
页数:4页
时间:2018-08-05
《数据库中多表连接》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQL查询中需要跨越多个表时就需要使用连接查询 首先是内连接,是用的比较多的一种,内连接是指多个表通过连接条件中共享列的相等值进行的匹配连接,它主要有两种形式:等价连接和自然连接。等价连接会产生冗余列,因为它将连接条件中的共享列显示两次,而自然连接则清除了等价连接产生的冗余列,因此我们所说的内连接在没有特殊说明书的情况下都指的自然连接。 我这里有两个表“XSQK”和“COURSE”如下图: 我们通过内连接来查询每位同学都选择了哪门课,结果如下: 由此我们可以看出,表XSQK中的所选课程和COURSE中的课程号进行比较,最终得出每位同学所选择的
2、课。 二、外连接 左连接,结果如下图所示: 我们可以看出,左连接是以“Leftjoin”左边的表为基准,将XSQK的课程号和COURSE的ID进行比较,如果相等则显示出来,什么是左表呢?连接符号(LEFTJOIN左边的表是左表,反之则是右表),如果“LeftJoin”左边的表中有值,而右边表中没有匹配的选项,则显示,反之则不会显示,并且不匹配记录的列会被置空。如:示例中最后一条ID为4的记录,这条记录与所比较的条件(XSKQ.课程号=COURSE.ID)并不匹配,但是因为它在左表XSQK中,因此它被显示出来。 右连接,与左连接恰恰相反,运行结果如
3、下图:4 因为没有人选择数学和音乐这两门课,本来是不匹配查询条件的,但是因为是右连接,所以也被显示。 三、自连接 说白了,就是自己跟自己比较。就是把使用内连接或外连接把一个表中的行同该表中另外一些行连接起来,它主要用在查询比较相同的信息。为了连接同一个表,必须为该表在FROM子句中指定两个别名,这样才能在逻辑上把该表作为两个不同的表使用。 示例表2,如下图: 该表有三连组成,分别是部门ID、部门名称、部门所属上级部门(UP_id) 我们使用自连接进行查询,需要找出每个部门所属的上级部门。因为,这个表结构不够清晰,因为部门和所属的上级部门混在同一个表中。使用
4、自连接查询结果如下图: 可能理解起来有些困难,我在下面做一下解释如下图: 看上图可能好理解一点,让A的UP_ID和B的ID相比较,就能得出部门以及所属上级部门。
此文档下载收益归作者所有