连接查询之内连接(等值连接、非等值连接和自连接)

news2024/11/20 0:44:49

1、等值连接:表连接条件是等值关系,我们称为等值连接。

需求:查询每个员工所在部门名称,显示员工名和部门名:

        查看员工表的ename和deptno字段信息:

                

        查看部门表中的deptno和dname字段信息

                 

        SQL92语法:

                select

                   e.ename,d.dname

                from

                        emp e,dept d

                     where

                        e.deptno = d.deptno;

          缺点:结构不清晰,表的连接条件,和后期进一步筛选的条件都需要放在where后面。

       SQL99语法:

                select

                   e.ename,d.dname

                from

                        emp e

                     inner join    #这里的inner表示内连接,它可以省略,写上inner的可读性好一些,因为见到inner就知道是内连接

                        dept d

                     on

                        e.deptno = d.deptno; #表连接条件是等值关系,我们称为等值连接

               

      优点:表连接的条件是独立的,连接之后如果还需要进一步筛选,可以继续在where后面加条件。

                                   

2、非等值连接:表连接条件是非等值关系,我们称为非等值连接。

        需求:找出每个员工的薪资等级,要求显示员工姓名、薪资、薪资等级:

                查看员工信息表中的ename和sal字段信息

                

                查看薪资等级表:

                 

SQL语句:

        select

                e.ename,e.sal,s.grade

        from

                emp e

        join

                salgrade s

        on

                e.sal between s.losal and hisal;   #这里表的连接条件是非等值关系,为此称为非等值连接

                

3、自连接:最大的特点就是将一张表看成两张表,自己连接自己。

        需求:查询每个员工的上级领导,要求显示员工名和领导名。

        分析:因为员工和领导都在一张表上,所以需要将同一张表看成是两张表,这样就可以了。

        SQL:

        select

                a.ename as '员工名',b.ename as '领导名'

        from

                emp as a     #这里把emp表看成表a

        join

                emp as b     #这里又把emp表看成表b,让表a连接表b,因为表a和表b是同一张表,所以称为自连接

        on

                a.mgr = b.empno;

                ​​​​​​​        ​​​​​​​        ​​​​​​​ 

因为KING没有上级领导,所以这里显示13条记录。(这里丢失了一名员工,显然不符合题意,解决办法见外连接)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年最值得关注的机器人趋势TOP10

新兴的机器人技术趋势和预测满足了对工业自动化、数字化和可持续性的需求。仓库中的材料处理由自动移动机器人(AMR)和自动引导车辆(AGV)实现自动化。相关机构对8949家全球初创企业和2023年机器人趋势规模的样本进行了研究&#xf…

Linux的安装(云服务器专讲)

一、Linux环境的安装有一下几种方式:双系统或则将自己的笔记本搞成Linux系统——严重不推荐,这样安装成本高、并且容易把自己电脑弄坏。虚拟机推荐wmware player这是免费的,并且推荐是打在了centos7.x版本的,这个的好处就是不需要…

微信接入 ChatGPT(学习笔记,不作教程)

微信接入 ChatGPT前置条件接入前提去Linux虚拟机(必须有go环境)安装前先配置下ssh密钥生成新的ssh密钥检查将 SSH 密钥添加到 ssh-agent将 SSH 密钥添加到您在 GitHub 上的帐户上去github上将密钥复制在里面然后点击添加ssh密钥安转部署最后直接go run m…

【JavaSE】Java序列化详解

【JavaSE】Java序列化详解 文章目录【JavaSE】Java序列化详解一:什么是序列化和反序列化?二:序列化协议对应于 TCP/IP 4 层模型的哪一层?三:常见序列化协议有哪些?四:JDK 自带的序列化方式1:序…

广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”

文章目录广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”曝光数据流转结算管道式架构助力高可用管道式架构模式图流式链路中特殊的缓存设计一、二级缓存Nosql 数据型缓存组件s2s 监测上报广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算” 曝光数据…

SpringCloud微服务项目实战 - 5.自媒体文章审核

愤怒归根结底是为了达成目的的一种工具和手段,大声呵斥乃至拍桌子,目的都是通过震慑对方,进而使其听自己的话,因为他们也找不到更好的办法。 系列文章目录 项目搭建App登录及网关App文章自媒体平台(博主后台&#xff…

68.多尺度目标锚框的代码实现

在之前,我们以输入图像的每个像素为中心,生成了多个锚框。 基本而言,这些锚框代表了图像不同区域的样本。 然而,如果为每个像素都生成的锚框,我们最终可能会得到太多需要计算的锚框。 想象一个 561728 的输入图像&…

UG/NX 二次开发(C#)自动出2D零件图(标准件配置Bata版)

一、前言 昨天分享了自动出2D零件图的思路(UG/NX 二次开发(C#)自动出2D零件图思路),今天整理了Q群里各位大佬的意见,结合当前实际项目情况,做了一个可配置的半自动出图版本,暂且称之为标准件配置Bata版。 虽…

steam/csgo搬砖项目详解

steam搬砖项目简单来说,就是在steam平台购买游戏装备到网易BUFF平台出售,赚取汇率差和装备差价。 我今天也就给大家讲解一下steam项目的原理,还有存在什么样的风险。 做steam搬砖需要什么准备: 1.手机 2.电脑 3.美服steam账号 4.…

【hcip】多点双向重发布实验

目录 1.拓扑图 2.要求 3.主要配置 4.测试 1.拓扑图 2.要求 达到所有目标最优,互有备份 3.主要配置 左边区域配置rip,右边区域配置ospf,以r2为例 [r2]rip [r2-rip-1]version 2 [r2-rip-1]network 12.0.0.0 [r2-rip-1]network 2.0.…

堆排序详细说明及实现-python

先了解什么是堆: 堆的定义 n个元素的序列 [ k1,k2,...,kn ],满足以下的性质时称之为堆: ki≥k2i 且 ki≥k2i1 (1≤i≤ ) 或 ki≤k2i 且 ki≤k2i1 (1≤i≤ ) 如果采用顺序方式即用一维数组存储这个序列&…

《回眸2022·圆满收官||展望2023·砥砺奋发》

系列文章目录 文章目录系列文章目录寄言和CSDN相遇大学生活从小白到千粉博主回眸2022|圆满收官展望2023|砥砺奋发致每一个追梦人寄言 岁月不距,时节如流!站在岁末的门槛前,回望2022这一年,不知你是否已经完美的书写完2022的答卷&…

计算机工作过程(超详细)

文章目录一、计算机组成框图二、思维导图三、部件剖析(1)存储器(2)运算器(3)控制器四、案例剖析(重点)(1)a2(2)a*b(3&…

vscode配置Markdown snippet 的快捷键

Snippet 是? 不同文件的模板语法/代码片段,可以设置好后在不同类型文件快速插入,提高效率。 例如:可以在Markdown使用快捷键生成自己想要的模板内容,自定义输入时tab的跳转位置 具体设置 官方文档 生成snippet的在…

Apache Spark 机器学习 数据源 2

数据源 数据源作为机器学习的数据输入,以供给Spark进行机器学习,Spark技术框架除了支持Parquet、CSV、JSON以及JDBC这些常用的数据源,还提供一些特殊数据源的支持,例如,图像或者LIBSVM。 Parquet数据源 该数据源是a…

2023什么蓝牙耳机值得入手?值得入手的半入耳蓝牙耳机推荐

毫无疑问,近年来蓝牙耳机的外出使用频率越来越高,这是由于其外出携带的便捷性以及配置越来越高端、先进,而半入耳式蓝牙耳机又凭借更舒适的佩戴体验以及便携性受到用户的喜爱。但,面对形形色色的蓝牙耳机,不同价位、不…

Shell中的 test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真实例num1100num2100if test $[num1] -eq $[num2]thenecho 两…

完全背包理论基础

目录 一.理论基础 二.遍历顺序问题 2.1 01背包 2.2完全背包 3.相关题型 3.1零钱兑换 3.1.数组总和IV 一.理论基础 题目描述: 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个&…

重置Entity Framework Core的数据迁移

本文主要参考文章重置EntityFramework数据迁移到洁净状态,感谢哈~。可能是版本问题,文中所述操作跟我稍微有所出入,故在此做下记录。注意,本人的IDE是JetbrainsRider,并非Visual Studio,但主要操作是通用的…

Spring事务源码解析

Spring事务源码解析一、基本概念1、ACID属性2、事务的隔离级别3、事务行为4、Spring事务的传播级别5、Spring事务支持方式二、Spring事务的执行源码1、事务AOP2、事务处理拦截器TransactionInterceptor2.1 主要流程2.2 尝试创建事务2.3 清除线程事务信息2.4 事务提交2.5 事务异…