当前位置: 首页 > news >正文

二十一、MySQL(多表)内连接、外连接、自连接实现

1、多表查询

(1)基础概念:

 (2)多表查询的分类:

2、内连接

(1)基础概念: 

(2)隐式内连接:

基础语法:

select 表1.name,表2.name from 表1,表2 where 表1.外键=表2.被链接的字段;

实际操作:

# (1)查询每一个员工的姓名,以及关联的部门名称--隐式查询
select emp.name,course.name from emp,course where emp.number=course.id;

(3)显式内连接:

基础语法:

select 表1.name,表2.name from 表1 inner join 表2 on 表1.外键 =表2.被链接的字段;

实际操作:

# (2)查询每一条员工的姓名,以及关联的部门名称--显式查询
# inner join ... on ...
select emp.name,course.name from emp inner join course on emp.number =course.id;

(4)区别:

        相对而言,隐式连接好理解好书写,语法简单,担心的点较少。但是显式连接可以减少字段的扫描,有更快的执行速度。这种速度优势在3张或更多表连接时比较明显。

3、外连接

(1)基础概念:

 

 (2)左外连接:

-- 外连接演示:
-- 1、查询emp表的所有数据,和对应的部门信息(左外连接):
-- 表结构:emp、course
-- 左外连接,会显示左表中的每一条数据
select emp.*,course.name from emp left outer join course on emp.number=course.id;

(3)右外连接:

-- 2、查询course表的所有数据,和对应的员工信息(右外连接):
-- 表结构:emp、course
-- 右外连接,会显式左表中的每一条数据
select course.*,emp.* from emp right outer join course on emp.number=course.id;

 4、自连接

(1)基础概念:

自连接顾名思义,就是自己链接自己,基础语法如下:

select 字段列表 from 表A 别名A join 表A 别名B on 条件……;

(2)原表格:

 (3)实际操作:

-- 自链接演示
# 一张表自己连接自己
# select 字段列表 from 表A 别名A join 表A 别名B on 条件……;
# 查询员工及其所属领导的名字
select e1.name as '员工',e2.name as '领导' from emp e1 join emp e2 on e1.manager=e2.id;

相关文章:

二十一、MySQL(多表)内连接、外连接、自连接实现

1、多表查询 (1)基础概念: (2)多表查询的分类: 2、内连接 (1)基础概念: (2)隐式内连接: 基础语法: select 表1.name,…...

Zookeeper运维

我是一个目录 1. 参数说明2. Zookeeper优化建议3. Zookeeper性能查看4. 建议 1. 参数说明 工作节点瞬间压力大,导致和集群通信出现延迟,被踢出节点,瞬间释放的连接立即又连接到另外节点,最终集群挂掉。加了一些延迟配置后&#xf…...

uniapp 点击事件-防重复点击

uniapp 点击事件-防重复点击 1、common文件并创建anti-shake.js文件 // 防止处理多次点击 function noMoreClicks(methods, info) {// methods是需要点击后需要执行的函数, info是点击需要传的参数let that this;if (that.noClick) {// 第一次点击that.noClick f…...

推进“数智+数治”,中期科技智慧公厕驱动城市公厕更新升级发展

随着城市化的快速发展和人口的不断增加,公共厕所这一基础设施的更新升级成为了亟待解决的问题。过去的传统公厕往往存在着环境脏乱差、无法保证使用者的舒适度等诸多问题。而智慧公厕则能够通过互联网和物联网的技术手段,实现智能化的运行管理&#xff0…...

4、模板(二叉树,红黑树,STL的实现)

1. 泛型编程 2. 模板&#xff1a;参数类型化 3. 模板分类 3.1 函数模板 概念 实例化&#xff1a;隐式实例化&#xff0c;显式实例化 3.2 类模板 4. 在模板参数列表中&#xff1a;class和typename 5.模板参数列表:template <class T , size_t N> 类型参数&#x…...

了解JVM

一.了解JVM 1.1什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟计算机功能来实现的&#xff0c;JVM屏蔽了与具体操作系统平台相关的信息&#xff0c;Java程序只…...

vue2实现组织机构树

参考大佬文章&#xff1a;https://www.cnblogs.com/10ve/p/12573772.html 【vue——实现组织架构图(vue-org-tree)——技能提升 - CSDN App】http://t.csdn.cn/Mpe4B...

JS中BigInt的使用

JS中BigInt的使用 BigInt是一种内置对象&#xff0c;它提供了一种方法来表示大于2^53 - 1的整数&#xff0c;通俗来讲就是提供了一种可以表示任意大整数的方法&#xff0c;当我们使用Number来表示一个超过了2 ^53 - 1的整数的时候&#xff0c;会出错。所以此时我们需要使用Big…...

你的第1个 Unity 游戏!!!

简介 首先新建一个方块添加重力!!!总结首先 首先,你要先打开 U n i t y Unity Unity...

炫云云渲染3ds max效果图渲染教程

很多人在第一次使用炫云云渲染渲染效果图的时候不知道怎么使用&#xff0c;其实现在使用炫云渲染效果图真的很简单&#xff0c;我们一起来看看。 一客户端安装 1、打开炫云云渲染官网&#xff0c;点击右上角的客户端下载&#xff0c;选择炫云客户端&#xff08;NEXT版&#xf…...

Java中数组array和列表list相互转换

在Java中&#xff0c;可以将数组&#xff08;array&#xff09;和列表&#xff08;list&#xff09;相互转换&#xff0c;但需要注意一些细节和限制。以下是一些示例和说明&#xff1a; 从数组到列表&#xff1a; 使用Arrays.asList()方法&#xff1a;可以使用Arrays.asList()…...

【JavaSE笔记】数据类型与变量

一、前言 在Java这门“啰嗦”的编程语言中,我们必须弄清楚每种数据类型的性质和用途,才能让程序“说人话”。要成为Java高手&#xff0c;就必须与各种数据类型打成一片。 本文则将带你认识Java中常见的两位“角色”—数据类型与变量。 二、数据类型 在Java中数据类型主要分…...

VR全景智慧文旅解决方案,助力文旅产业转型升级

引言&#xff1a; 随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术正逐渐展露其影响力&#xff0c;改变着旅游业。VR全景智慧文旅解决方案也应运而生&#xff0c;将传统旅游的体验形式从线下扩展到了线上&#xff0c;带来了不一般的文旅体验。 一.VR全…...

采用cv2和默认的人脸识别分类器实现人脸检测功能

人脸识别分类器 haarcascade_frontalface_default 提示&#xff1a;分类器文件地址在这里&#xff1a;https://github.com/opencv/opencv/blob/687fc11626901cff09d2b3b5f331fd59190ad4c7/data/haarcascades/haarcascade_frontalface_default.xml 文章目录 人脸识别分类器 haar…...

C# 实现迷宫游戏

智能提示&#xff1a; /// <summary>/// 迷宫/// </summary>internal class Maze : IDisposable{private MazeCell[,] cells;private readonly Stack<MazeCell> stack new Stack<MazeCell>();private readonly Random rand new Random();private int…...

chales 重写/断点/映射/手机代理/其他主机代理

1 chales 安装和代理配置/手机代理配置/电脑代理配置 chales 安装和代理配置/手机代理配置/电脑代理配置 2 转载:Charles Rewrite重写(详解&#xff01;必懂系列) Charles Rewrite重写(详解&#xff01;必懂系列) 1.打开charles&#xff0c;点击菜单栏的Tools选中Rewrite2.…...

django添加数据库字段进行数据迁移

1.修改view.py里面的变量 2.在model.py新增字段 3.打开terminal并将环境切到项目所在环境&#xff0c;切换方式为 4.执行命令 python manage.py makemigrations backend python manage.py migrate...

flink1.15.0消费kafka 报错 The coordinator is not available.

报错 You should retry committing the latest consumed offsets. Caused by: org.apache.kafka.common.errors.CoordinatorNotAvailableException: The coordinator is not available. 但是任务还在正常跑. 开源bug [FLINK-28060] Kafka Commit on checkpointing fails re…...

2023华为杯研究生数学建模F题思路模型代码(9.22早第一时间更新)

目录 1.F题思路模型&#xff1a;9.7晚上比赛开始后&#xff0c;第一时间更新&#xff0c;获取见文末名片 3 全国大学生数学建模竞赛常见数模问题常见模型分类 3.1 分类问题 3.2 优化问题 详细思路见此名片&#xff0c;开赛第一时间更新 1.F题思路模型&#xff1a;9.7晚上比…...

[k8s] pod的创建过程

pod的创建过程 定义 Pod 的规范&#xff1a; apiVersion: v1 kind: Pod metadata:name: my-pod spec:containers:- name: my-containerimage: nginx:latest创建 Pod 对象&#xff1a; 使用 kubectl 命令行工具或其他客户端工具创建 Pod 对象&#xff1a; kubectl create -f…...

[网鼎杯 2020 朱雀组]phpweb call_user_func()

时间一跳一跳的 抓个包 很奇怪 结合上面的 date() 认为第一个是函数 我们随便输一个看看 发现过滤了 随便输一个 linux指令 发现报错了 call_user_func() 看看是啥 很容易理解 第一个参数是函数名 后面是 参数 那么这里就是 func 函数 p 数值 所以我们看看有什么办法可以…...

电脑怎么取消磁盘分区?

有时候&#xff0c;我们的电脑会出现一个磁盘爆满&#xff0c;但另一个却空着&#xff0c;这时我们可以通过取消磁盘分区来进行调整&#xff0c;那么&#xff0c;这该怎么操作呢&#xff1f;下面我们就来了解一下。 磁盘管理取消磁盘分区 磁盘管理是Windows自带的磁盘管理工具…...

Cascade-MVSNet CVPR-2020 学习笔记总结 译文 深度学习三维重建

文章目录 4 Cascade-MVSNet CVPR-20204.0 主要特点4.1 背景介绍4.2 代价体构造回顾4.3 Cascade-MVSNet4.4 Loss的设置4.5 Cascade-MVSNet实战操作4.6 总结MVSNet系列最新顶刊 对比总结4 Cascade-MVSNet CVPR-2020 深度学习三维重建 cascade-MVSNet-CVPR-202(源码、原文、译文 …...

【JVM】Java类的加载机制!

一、类的生命周期 类加载过程包含&#xff1a;加载、验证、准备、解析和初始化 &#xff0c;一共包括5 个阶段。 &#xff08;1&#xff09;加载&#xff1a; 简单来说就是将java类的字节码文件加载到机器内存中。在加载类时&#xff0c;Java虚拟机必须完成以下3件事情&…...

Postman使用_接口导入导出

文章目录 Postman导入数据Collections导出数据Environments导出数据Postman导出所有数据 Postman导入数据 可以导入collections&#xff08;接口集&#xff09;、Environments&#xff08;环境配置&#xff09;通过分享的链接或导出的JSON文件导入数据&#xff08;还可以从第三…...

linux下centos7升级python版本

由于项目需要使用爬虫&#xff0c;爬虫框架支撑3.8以上版本。而linux自带的python版本是2.7.*&#xff0c;所以需要升级python版本至3.8 键脚本安装Python3.6-Python3.10 bash <(curl -sSL https://raw.githubusercontent.com/midoks/choose-linux-python/main/install.sh…...

Python空值None的意义

在 Python 中&#xff0c;有一个特殊的常量 None&#xff08;N 必须大写&#xff09;。和 False 不同&#xff0c;它不表示 0&#xff0c;也不表示空字符串&#xff0c;而表示没有值&#xff0c;也就是空值。 这里的空值并不代表空对象&#xff0c;即 None 和 [] 以及 "&q…...

什么是无线传输技术,如Wi-Fi、蓝牙和NFC的特点和应用场景

1、什么是无线传输技术&#xff0c;如Wi-Fi、蓝牙和NFC的特点和应用场景。 无线传输技术是指通过无线电波进行数据传输的技术。Wi-Fi、蓝牙和NFC都是常见的无线传输技术&#xff0c;它们的特点和应用场景如下&#xff1a; Wi-Fi&#xff1a;Wi-Fi是一种基于802.11协议的无线传…...

RUST 每日一省:全局变量

Rust中允许存在全局变量。它们一般有两种&#xff1a;常数和静态值。 常量 我们使用关键字 const 来创建常量。由于常量未使用关键字 let 声明&#xff0c;因此在创建它们时必须指定类型。常量只能进行简单赋值&#xff0c;并且没有固定的内存地址&#xff0c;无论它们在何处使…...

Arduino与Proteus仿真-WiFi网络仿真环境搭建

Arduino与Proteus网络(WiFi)仿真环境搭建 文章目录 Arduino与Proteus网络(WiFi)仿真环境搭建1、软件准备2、硬件准备3、仿真电路原理图4、仿真代码实现5、仿真结果本文将详细介绍如何在Proteus搭建Arduino的WiFi仿真环境。 1、软件准备 1)Arduino IDE或 VSCode + PlatformIO …...

做图网站有哪些东西吗/深圳20网络推广

实现链式调用 链式调用的核心就在于调用完的方法将自身实例返回 链式调用完方法后&#xff0c;return this返回当前调用方法的对象 示例一&#xff1a; function a() {console.log("初始化") }a.prototype.method function(param) {console.log(param)return th…...

织梦网站栏目字体怎么调/域名注册要多少钱

HSQLDB 的研究与性能测试(与Mysql对比) 1. HSQLDB 简介 HSQLDB 数据库是一款纯 Java 编写的免费数据库&#xff0c;许可是 BSD-style 的协议。相对其他数据库来说&#xff0c;其体积小&#xff0c;才 563kb 。仅一个 hsqldb.jar 文件就包括了数据库引擎&#xff0c;数据库驱动&…...

网站做专题提升权重/网络营销理论基础

最近在学习强化学习&#xff0c;其最基础的原理就是马尔科夫决策过程&#xff0c;发现一些讲解很清楚的博客&#xff0c;特记录在此偶尔翻翻强化下概念。 https://blog.csdn.net/DeepOscar/article/details/81036635...

读书wordpress/怎么开一个网站平台

点击上方“Java基基”&#xff0c;选择“设为星标”做积极的人&#xff0c;而不是积极废人&#xff01;每天 14:00 更新文章&#xff0c;每天掉亿点点头发...源码精品专栏 原创 | Java 2021 超神之路&#xff0c;很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框…...

如何说课网站建设/友情网站

写这篇文章来由&#xff0c;有朋友说下面这样的代码看不懂。choice input("please input:n").strip()[0].lower()很多对于有经验的程序员来说&#xff0c;这些都不是事&#xff0c;但对于初学者来说&#xff0c;看到这样的语法头有点大。这个其实是面向对象中方法链…...

动态手机网站/玉溪seo

我对计算机方面感兴趣的地方太多了&#xff0c;以至于不能很好的投入到一个地方&#xff0c;专攻于一个领域&#xff0c;有学操作系统、有学网络安全、有学数据库、编程等等。。 但都只学到点皮毛&#xff0c;未能深入专攻。。 希望借以此文 下个决心 专攻于网络安全&#xf…...