前言

最近在项目中用到连接查询,连接查询是关系数据中最主要的查询,包括内连接、外连接等。通过连接运算符可以实现多个表查询。下面来复习一下。

正文

连接查询主要分为三种:内连接、外连接、交叉连接。

  • 内连接

    使用比较运算符(包括=、>、<、<>、>=、<=、!> 和!<)进行表间的比较操作,查询与连接条件相匹配的数据。根据所使用的比较方式不同,内连接分为等值连接、自然连接和自连接三种。
        关键字      INNER JOIN

    等值连接/相等连接

    使用”=”关系将表连接起来的查询,其查询结果中列出被连接表中的所有列,包括其中的重复列

SELECTPM_ACT_JOB_RLS.*, PM_ACT_RLS.*
FROMPM_ACT_JOB_RLS
INNER JOIN PM_ACT_RLS ON PM_ACT_JOB_RLS.RlsPK = PM_ACT_RLS.RlsPK

自然连接

等值连接中去掉重复的列,形成的连接

SELECTPM_ACT_JOB_RLS.JobPK,PM_ACT_RLS.RlsPK,RlsName
FROMPM_ACT_JOB_RLS
INNER JOIN PM_ACT_RLS ON PM_ACT_JOB_RLS.RlsPK = PM_ACT_RLS.RlsPK

自连接

如果在一个连接查询中,设计到的两个表都是同一个表,这种查询称为自连接查询。

--c1、c2逻辑上是两张表,物理上是一张表
SELECTc1.CategoryID,c1.CategoryName
FROM[dbo].[Category] c1
INNER JOIN [dbo].[Category] c2 ON c1.[CategoryID] = c2.[ParentID]
  • 内连接

    内连接只返回满足连接条件的数据行,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。外连接分为左外连接、右外链接、全外连接三种。

左外连接
  &nbsp;&nbsp;&nbsp;&nbsp; 返回左表中的所有行,如果左表中行在右表中没有匹配行,则在相关联的结果集中右表的所选择字段均为NULL。
&nbsp;&nbsp;&nbsp;&nbsp;关键字  &nbsp;&nbsp;&nbsp;&nbsp;<strong>LEFT [OUTER] JOIN</strong>![这里写图片描述](https://img-blog.csdn.net/20180116200008438?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenQxNTczMjYyNTg3OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
--左外连接  --1679条数据
SELECTme.*,mo.*
FROMMM_LOTS_EXT AS me
LEFT OUTER JOIN MM_LOT_OPERATIONS AS mo ON me.LotID = mo.SerialNumber

右外连接

返回右表中的所有行,如果右表中行在左表中没有匹配行,则在左表中相关字段返回NULL值。
    关键字     RIGHT [OUTER] JOIN

--右外连接  --209条数据
SELECTme.*,mo.*
FROMMM_LOTS_EXT AS me
RIGHT OUTER JOIN MM_LOT_OPERATIONS AS mo ON me.LotID = mo.SerialNumber

全外连接/完全外连接

返回两个连接中所有的记录数据,是左外连接和右外连接的并集。
    关键字     FULL [OUTER] JOIN

--全外连接  --1816条数据
SELECTme.*,mo.*
FROMMM_LOTS_EXT AS me
FULL OUTER JOIN MM_LOT_OPERATIONS AS mo ON me.LotID = mo.SerialNumber
  • 交叉连接/笛卡尔积

两个表做笛卡尔积,得到的结果集的行数是两个表的行数的乘积。
    关键字      CROSS JOIN

--笛卡尔积 (cross join后加条件只能用where,不能用on)  --45条数据(9*5)
SELECT*
FROMPM_ACT_JOB_RLS
CROSS JOIN PM_ACT_RLS

注意:带有where条件的子句,往往会先生成两个表行数乘积的数据表,然后从根据where条件从中选择。
     当数据量比价大的时候,笛卡尔积操作会很消耗数据库的性能

总结

连接查询是关系型数据库中的一个重要标志,这次和大家一起复习多表查询的几种操作,希望给您带来帮助!

【SQL】—多表查询的几种连接方式相关推荐

  1. mysql连接查询分为几种方式_SQL多表查询的几种连接方式

    一.基础 1.1 SQL查询的基本原理 第一.单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后根据SELECT的选择列选择相应的列进行返回最终结果. 第二.两 ...

  2. SQL 联表查询的三种方式:左连接、右连接、内连接、默认连接

    数据库表: blog表: user表: 左连接: 以左表为主表,查询出满足条件的内容.查询到的内容是左表全部的内容,和右表满足要求的内容.可能会出行右表内容为为空的可能. select b.id,b. ...

  3. SQL多表查询:左外连接、右外连接、满外连接、UNION ALL

    文章目录 1 多表查询分类 1.1 等值连接 VS 非等值连接 1.1.1 非等值连接 1.1.2 等值连接 1.2 自连接 VS 非自连接 1.2.1 自连接 1.2.2 非自连接 1.3 内连接 ...

  4. mybatis一对一联表查询的两种常见方式

    1.一条语句执行查询(代码如下图)  注释:class表(c别名),teacher表(t别名)teacher_id为class表的字段t_id为teacher表的字段,因为两者有主键关联的原因,c_i ...

  5. MyBaties中多表查询及数据库左连接、右连接、内连接、全连接笔记

    本文最终目的是介绍MyBaties中多表查询方法,最难的就是多对多的查询方式,在此之前咱们先一起复习一下数据库的两表间的连接方式. 数据库表连接方式 数据库两个表之间有四种连接方式,其中包括左连接.右 ...

  6. 为什么selection.find在word vba中不返回所有结果?_工作表查询中,内连接Inner join的讲解...

    大家好,我们继续讲解VBA数据库解决方案,今日讲解第56讲内容: 数据表查询中,内连接Inner join的讲解.从这讲开始给大家实例讲解在查询中各种连接方式的应用.为什么到现在才讲解这块内容呢?是的 ...

  7. SQL语句详解(四)——SQL联表查询

    今天我们继续给大家介绍MySQL相关知识,本文主要内容是SQL联表查询. 一.SQL联表查询简介 在前文SQL语句详解(三)--SQL子查询中,我们给大家介绍了SQL子查询的相关知识和使用示例.实际上 ...

  8. SQL 多表查询之 where和INNER JOIN

    SQL多表查询之 where和INNER JOIN[基础查询和效率分析] 转载Michaelwubo 最后发布于2018-07-05 10:40:47 阅读数 18057  收藏 https://bl ...

  9. ORACLE SQL 多表查询

    ORACLE SQL 多表查询 开发工具与关键技术:Oracle sql*plus PLSQL Developer SQL 撰写时间:2019年05月08日 说明:顾名思义,多表就是多个表连接起来进行 ...

最新文章

  1. c#利用三层架构做一个简单的登录窗体
  2. 2.2 经典网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  3. phpredis中文手册——《redis中文手册》 php版
  4. Visual 数据绑定
  5. JavaScript Development Toolkit 简介
  6. MongoDB 查询 (转) 仅限于C++开发
  7. 无法在PC上找到,android app 创建的文件 问题.
  8. MySQL内存----使用说明全局缓存+线程缓存) 转
  9. Idea中@Autowired 黄色波浪线问题,注入类显示红色波浪线,去除重复代码导致的波浪黄线,去除xml文件里sql语句的黄色行背景色,问题解决
  10. linux php文件,如何在linux执行PHP文件
  11. 返回结果乱码_峰哥说技术系列-7 Spring Boot返回JSON
  12. Fundamentals of Power Electronics 第1版第2版 pdf 资源
  13. word硬回车是怎么产生的_怎么将word文档中的软回车替换成硬回车
  14. 健身用肌酸市场前景分析及行业研究报告
  15. WinCE 编程实验(第一章 引言)
  16. r语言中which的使用_大数据分析R语言RStudio使用教程
  17. Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!...
  18. 微软Windows11,官方更新助手(下载地址)
  19. MySQL查询语句练习题(面试时可能会遇到哦!)
  20. 数据结构与算法——左程云06

热门文章

  1. Java阿尔法编程题目
  2. 如何查看服务器上的显卡和Python版本信息
  3. distinct 查询报错
  4. ICAM V17 V19 V21 V22
  5. 顺表类SeqList的使用范例(C++)
  6. 有道云计算机,有道云笔记 v 6.8.0 官方版|有道云笔记官方版|有道云笔记官方电脑版_最火软件站...
  7. ASIC/SoC验证
  8. IPTV用户今年或过亿 运营商转型+政策双驱动
  9. 美国计算机科学研究生学费,在美国读研究生一年学费多少,如果是计算机专业的要上几年?...
  10. WordPress添加侧栏小工具-博客统计(网站统计)