数据库——sql多表查询

news2024/11/28 13:35:24

        当要在两个表(或多个表)中查找对应数据时,与普通的查询略有不同。本篇博文用于介绍基本的多表查询的方法。

为方便展示,本篇建了两个数据库表“学生表”“班级表”作为例子

其中,在“学生表”中,cid标签表示的是学生所在班级的id

1.多表查询

通过以下语句查找两个表的全部内容(相当于将两个表拼合),我们会发现出现了随机匹配的情况

SELECT * FROM `学生表`,`班级表`

 为解决这种问题,让学生和对应班级的信息匹配,我们可以通过添加条件实现,即查找出在学生表中cid与班级表中id相等的项

SELECT * FROM `学生表`,`班级表` WHERE `学生表`.cid=`班级表`.id

这样可以有效避免以上问题。

2.联表查询

方法:JOIN IN

2.1内联接

 假设,有A,B两个表,join in 求的内联表即为下图示意中的黄色部分

 对于本篇文章中的例子,具体SQL语句为:

SELECT * FROM `学生表`join `班级表` on `学生表`.cid=`班级表`.id

所得结果为下图: 

2.2外联接

外联接又分为:左外联接和右外联接

左外联接示意图如下图红色所示:

 右外联接示意图如下图红色所示:

在本文中的例子里,为了方便展示外联接,更新学生表和班级表如下:

左外联接的SQL语句 为:

SELECT * FROM `学生表` left join `班级表` on `学生表`.cid=`班级表`.id

结果如下,可见丽丽并没有对应班级,但在左外联表中仍会体现: 

 右外联接的SQL语句 为:

SELECT * FROM `学生表` right join `班级表` on `学生表`.cid=`班级表`.id

结果如下:

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

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

相关文章

RT-DETR改进策略:BackBone改进|CAFormer在RT-DETR中的创新应用,显著提升目标检测性能

摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入RT-DETR模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作)

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz(动态新增、修改等操作) 前言数据库脚本创建需要被调度的方法创建相关实体类创建业务层接口创建业务层实现类控制层类测试结果 前言 我这边的SpringBoot的版本为2…

Android 防止截屏和录屏

通过给当前的window对象设置标记WindowManager.LayoutParams.FLAG_SECURE来防止截屏和录屏 protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 防止截屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManage…

vscode配置:启用括号对着色

想要的效果:启用括号对着色,在大括号之间用折线表示,看起来会更加直观方便,例如在less中嵌套层级比较多时,大括号的层级不容易看清楚,做了这个配置会更好一些。 vscode安装扩展插件:Bracket P…

Spring Boot学习资源库:Spring生态的精华

摘 要 社会的进步,教育行业发展迅速,人们对教育越来越重视,在当今网络普及的情况下,教学模式也开始逐渐网络化,各大高校开始网络教学模式。 本文研究的教学资源库系统基于Springboot框架,采用Java技术和MYS…

Linux deepin系统通过编辑crontab来设置定时任务---定时关机

在Linux系统中,crontab 是用来设置周期性被执行的指令的守护进程。通过编辑 crontab,您可以安排定时任务,比如定时关机、定时备份文件、定时运行脚本等。以下是如何编辑 crontab 来设置定时任务的步骤: 打开终端:您可以…

AcWing 802. 区间和(离散化算法,python)

本篇博客详细讲解一下离散化知识点,通过讲解和详细列题带大家掌握离散化。 题目: 原题链接:https://www.acwing.com/problem/content/description/804/ 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,…

平时使用的正则总结

1、将某一个字符串的后缀名后面加上“!400_500” 使用场景是将minio拿过来的图片压缩尺寸从而压缩其大小,加快渲染的速度。需要在图片的后缀名后面加上尺寸如下: const str //storage-test.test.shiqiao.com/gateway/common/isopen/2024/10/09/e708e9…

科创集团所属园区入驻企业北京铭镓半导体获 “硬科技”潜在独角兽企业认定

近日,科创集团所属工宇园区企业北京铭镓半导体荣获北京市科委、中关村管委会“硬科技”潜在独角兽企业认定。独角兽企业特指具备显著创新力、展现出强劲成长潜力以及获得市场高度认可的企业,是新经济领域发展的标志性存在。 北京铭镓半导体有限公司于202…

如何搭建直播美颜平台?视频美颜SDK的核心技术详解

时下,美颜效果作为提升直播吸引力的重要手段,已经成为主播和观众的共同期待。本篇文章,小编将与大家分享搭建一个高效的直播美颜平台的流程,重点介绍视频美颜SDK的核心技术。 一、直播美颜平台的构建 搭建一个直播美颜平台&#…

vue3:自定义描点定位组件(锚点定位和监听滚动切换)以及遇到的问题

目录 第一章 实现效果 第二章 锚点组件分析 2.1 功能分析 2.2 核心点 第三章 源代码 3.1 数据格式 3.2 代码分析 3.2.1 tab栏以及内容页面 3.2.2 逻辑 第四章 遇到的问题 第一章 实现效果 第二章 锚点组件分析 2.1 功能分析 tab栏以及切换涉及逻辑点击tab切换同时页…

uni-app 打包成app时 限制web-view大小

今天对接一个uni-app的app 内置对方h5 web-view的形式 需要对方在web-view顶部加点东西 对方打的app的web-view始终是全屏的状态,对方表示做不到我要的效果 emmmmmm。。。。。。 于是乎 自己搭了个demo 本地h5跑起来审查了下代码,发现web-view是给绝对定…

关于 CAM350打开钻孔文件时提示出错处理

自动导入CAM350出错时,需要单独导入通孔文件或者槽孔文件查看 第一步: 第二步: 下图中的几处值要与出Allegro中导出文件时的设置一致。 这样应该就能正常查看钻孔文件。

WPF中的Window类

控件分类 在第一篇文章.Net Core和WPF介绍中的WPF的功能和特性部分根据功能性介绍了WPF的控件 名称。 在接下来的文章中,将会详细的介绍各个控件的概念及使用。 主要包括: 内容控件:Label、Button、CheckBox、ToggleButton、RadioButton、…

【长文梳理Webserver核心】框架篇

感谢前人的总结,让一个小白快速成长,那我也贡献一份自己的力量~ 大框架梳理从main函数开始学习 大框架梳理 先摆图: 目光先放到最上面的两个小框架,半同步/半反应堆线程池和异步日志系统,日志系统晓得伐?…

jvm垃圾收集器简介

串行垃圾收集器 串行垃圾收集器,是指使用单线程进行垃圾回收,垃圾回收时,只有一个线程在工作,Java应用中的所有线程都要暂停,等待垃圾回收的完成。这种现象称之为STW(Stop-The-World),一般的javaweb应用中…

深入理解 pnpm(Performant NPM) 的实现原理及其与 npm 的区别

深入理解 pnpm 的实现原理及其与 npm 的区别 在 JavaScript 生态系统中,包管理器是开发者日常工作中不可或缺的工具。npm(Node Package Manager)作为 Node.js 的默认包管理器,已经广泛应用于各种项目中。然而,随着项目…

略谈发展测量方法论-高敏雪老师的文章解读与收获

历史地看, GDP 被誉为“世纪性发明”,我们曾经将其视为衡量一国经济发展的重要工具;现实地看,“超越 GDP”是当前出现的带有国际性的口号,内在地包含着对 GDP作为发展指标的批评和替代。 如何看到发展? 如…

apisix云原生网关

定义 企业级网关通过域名、路由将请求分发到对应的应用上,通常承载数千个服务的流量,对稳定性有较高要求。 CNCF全景图 选型 Kubernetes抽象出两个核心概念:Service,为多个Pod提供统一的访问入口;Ingress&#xff…

【STM32-HAL库】实现微秒、毫秒、纳秒延时。(STM32F4系列)(附带工程下载链接)

使用了本代码后不能使用HAL库自带的HAL_Delay函数 使用了本代码后不能使用HAL库自带的HAL_Delay函数 使用了本代码后不能使用HAL库自带的HAL_Delay函数 一、新建工程 可以参考我的新建工程系列教程 stm32-HAL库cubeMX新建工程教程(以F103C8T6为例)ht…