数据库中多表连接.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL查询中需要跨越多个表时就需要使用连接查询 ??? 首先是内连接,是用的比较多的一种,内连接是指多个表通过连接条件中共享列的相等值进行的匹配连接,它主要有两种形式:等价连接和自然连接。等价连接会产生冗余列,因为它将连接条件中的共享列显示两次,而自然连接则清除了等价连接产生的冗余列,因此我们所说的内连接在没有特殊说明书的情况下都指的自然连接。 ??? 我这里有两个表“XSQK”和“COURSE”如下图: ?????????? 我们通过内连接来查询每位同学都选择了哪门课,结果如下: ?????? 由此我们可以看出,表XSQK中的所选课程和COURSE中的课程号进行比较, 最终得出每位同学所选择的课。 ??? 二、外连接 ???? 左连接,结果如下图所示: ????????? 我们可以看出,左连接是以 “Leftjoin”左边的表为基准,将XSQK的课程号和COURSE的ID进行比较,如果相等则显示出来,什么是左表呢?连接符号(LEFTJOIN左边的表是左表,反之则是右表),如果“LeftJoin”左边的表中有值,而右边表中没有匹配的选项,则显示,反之则不会显示,并且不匹配记录的列会被置空。如:示例中最后一条ID为4的记录,这条记录与所比较的条件(XSKQ.课程号=COURSE.ID)并不匹配,但是因为它在左表XSQK中,因此它被显示出来。 ???? 右连接,与左连接恰恰相反,运行结果如下图: 4??? 因为没有人选择数学和音乐这两门课,本来是不匹配查询条件的,但是因为是右连接,所以也被显示。 ???? 三、自连接 ???? 说白了,就是自己跟自己比较。就是把使用内连接或外连接把一个表中的行同该表中另外一些行连接起来,它主要用在查询比较相同的信息。为了连接同一个表,必须为该表在FROM子句中指定两个别名,这样才能在逻辑上把该表作为两个不同的表使用。 ??? 示例表2,如下图: ?? 该表有三连组成,分别是部门ID、部门名称、部门所属上级部门(UP_id) ? 我们使用自连接进行查询,需要找出每个部门所属的上级部门。因为,这个表结构不够清晰,因为部门和所属的上级部门混在同一个表中。使用自连接查询结果如下图: ? 可能理解起来有些困难,我在下面做一下解释如下图: ?? 看上图可能好理解一点,让A的UP_ID和B的ID相比较,就能得出部门以及所属上级部门。 ?

文档评论(0)

orhchv6 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档