MySQL-----JOIN语句之内连接

在我们使用MySQL进行项目的开发过程中,仅仅对一张表进行操作是远远不够的,真正的应用中经常需要从多个数据表中读取数据。我们在使用的过程中,尝尝通过 SELECT, UPDATE 和 DELETE 语句配合使用 JOIN 来联合多表查询。

JOIN 分类

INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

三者的关系如图所示:
在这里插入图片描述

接下来两篇文章,我们将基于学生,课程,考试信息三个表对这三种连接进行逐一介绍,三个表结构以及表内数据如下图所示:

在这里插入图片描述

内连接

作用:INNER JOIN 返回两个表中满足连接条件的匹配行。

语法

SELECT a.属性名1,a.属性名2,...,b,属性名1,b.属性名2...FROM table_name1 a,table_name2 b on a.id = b.id where a.属性名 满足某些条件;

注意:inner可以省略

参数说明:

  • a.属性名1,a.属性名2,…,b,属性名1,b.属性名2… 是我们要选择的列的名称,如果使用 * 则是通配符表示选择所有列。
  • table_name1 a,table_name2 b 是要连接的两个表的名称。
  • a.id = b.id where a.属性名 满足某些条件; 是两个表的连接条件,指定了两个表中用于匹配的列。
  • a b 是为表起的别名,分别对应table_name1 table_name2

举个栗子~

查找zhangsan的C++高级课程的分数:

select a.uid,a.name,a.age,a.sex from student a inner
 join exame c on a.uid=c.uid where c.uid=1 and c.cid=2;

在这里插入图片描述

多表INNER JOIN

要找到一个和其余表都有联系的表,例如我们的考试成绩就关联了学生信息和课程信息。

举个栗子~

查找zhangsan的信息以及C++高级课程的分数以及学分:

select a.uid,a.name,a.age,a.sex,b.cid,b.cname,b.credit,c.score
from  exame c 
inner join student a on a.uid=c.uid 
inner join course b on c.cid=b.cid
where  c.uid=1 and c.cid=2;

在这里插入图片描述

只有exame表和两个表相关联,所以使用它和ab表相连接。

同时,我们也可以使用SUM,AVG,COUNT函数来统计一些数据,例如:
  • cid=2这门课程考试成绩的最高分的学生信息和课程信息
  • cid=2这门课程的考试平均成绩
  • 每门课程考试的平均成绩+课程信息
    在这里插入图片描述

注意: 对于inner join内连接,过滤条件写在where的后面和on连接条件里面,效果是一样的,sql会进行优化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Text2SQL 论文】CHESS:利用上下文来合成 SQL 的 pipeline

文章目录 一、论文速读二、CHESS pipeline2.1 Entity and Context Retrieval2.2 Schema Selection2.3 Query Generation 三、预处理四、实验五、总结讨论 一、论文速读 本文提出了一个 pipeline 框架——CHESS——来解决应用于复杂的真实数据库场景下的 Text2SQL 问题。 在现…

AC/DC电源模块的原理、特点以及其在实际应用中的重要性

BOSHIDA AC/DC电源模块的原理、特点以及其在实际应用中的重要性 AC/DC电源模块是一种用于将交流电转换为直流电的设备,广泛应用于各种电子设备中。这种电源模块可以有效地将电力从电网中提取出来,并将其转换为稳定的直流电源,供给各种不同功…

有趣的数学 数值方法简述

数值方法简述 令许多纯数学家烦恼的是,并非所有问题都能通过解析方法解决,也就是说,不能通过使用已知规则和逻辑来获得精确解的方法。 这时就需要使用数值方法。 数值方法将近似解,或者在最坏的情况下,将解限制在某个范…

Sketch文件轻松转换为PSD的简便方法

由于Sketch只支持在Mac上使用,当设计师使用Sketch完成设计草案,需要与使用Windows的同事连接设计项目时,会遇到同事无法打开或在Photoshop中查看和编辑的情况,这真的很尴尬。别担心!在本文中,我们将分享Ske…

笨蛋学算法之LeetCodeHot100_1_两数之和(Java)

package com.lsy.leetcodehot100;public class _Hot1_两数之和 {//自写方法public static int[] twoSum1(int[] nums, int target) {//定义存放返回变量的数组int[] arr new int[2];//遍历整个数组for (int i 0; i < nums.length; i) {//从第二个数开始相加判断for (int j…

mysql和redis的双写一致性问题

一&#xff0c;使用方案 在使用redis作为缓存的场景下&#xff0c;我们一般使用流程如下 二&#xff0c;更新数据场景 我们此时修改个某条数据&#xff0c;如何保证mysql数据库和redis缓存中的数据一致呢&#xff1f; 按照常规思路有四种办法&#xff0c;1.先更新mysql数据&a…

Nginx配置详细解释:(5)rewrite重写功能

rewrite重写功能&#xff0c;在编译安装时需要有相应的模块&#xff0c;ngx_http_rewritte_module模块指令中&#xff0c;有if指令&#xff0c;return,set,break等指令。 1.ngx_http_rewrite_module模块指令 1.if指令 if指令在nginx配置中&#xff0c;用于条件判断&#xff…

2024年山西水处理技术设备展览会11月8日召开

2024中国&#xff08;山西&#xff09;国际水务科技博览会 暨水处理技术设备与泵管阀展览会 时间&#xff1a;2024年11月8-10日 地点&#xff1a;山西潇河国际会展中心 推动城镇水务工作高质量发展&#xff0c;围绕解决水生态、水安全、水体黑臭、内涝积水等人民群众最关…

pikachu靶场通关全流程

目录 暴力破解&#xff1a; 1.基于表单的暴力破解&#xff1a; 2.验证码绕过(on server)&#xff1a; 3.验证码绕过(on client)&#xff1a; token防爆破&#xff1a; XSS&#xff1a; 1.反射型xss(get)&#xff1a; 2.反射性xss(post)&#xff1a; 3.存储型xss&#…

解决:RuntimeError: “slow_conv2d_cpu“ not implemented for ‘Half‘的方法之一

1. 问题描述 今天跑实验的时候&#xff0c;代码报错&#xff1a; RuntimeError: "slow_conv2d_cpu" not implemented for Half 感觉有点莫名奇妙&#xff0c;经检索&#xff0c;发现将fp16改为fp32可以解决我的问题&#xff0c;但是运行速度太慢了。后来发现&…

如何使用免费的 Instant Data Scraper快速抓取网页数据

Instant Data Scraper 是一款非常简单易用的网页数据爬虫工具&#xff0c;你不需要任何代码知识&#xff0c;只需要点几下鼠标&#xff0c;就可以把你想要的数据下载到表格里面。以下是详细的使用步骤&#xff1a; 第一步&#xff1a;安装 Instant Data Scraper 打开谷歌浏览…

ARM32开发--PWM与通用定时器

知不足而奋进望远山而前行 目录 文章目录 前言 学习目标 学习内容 PWM pwm原理 需求 开发流程 初始化PWM PWM占空比控制 main函数修改duty 输出通道 关心的内容 重要的关键词 周期 分频 占空比 总结 前言 在微控制器开发中&#xff0c;理解和掌握PWM&#x…

美团强势领涨恒指,港股即将迎来触底反弹?

恒指早间低开低走&#xff0c;持续低位徘徊&#xff0c;一度试探万八关口&#xff0c;最低见17994点&#xff0c;市场情绪表现疲弱&#xff0c;大型科技股普遍走低&#xff0c;但主要指数午后回升&#xff0c;恒生科技指数率先转涨&#xff0c;美团(3690.HK)涨超4%领涨成分股&a…

流程与IT双驱动:锐捷网络如何构建持续领先的服务竞争力?

AI大模型及相关应用进入“竞赛时代”&#xff0c;算力作为关键要素备受关注&#xff0c;由于算力行业对网络设备和性能有较大需求&#xff0c;其发展也在推动ICT解决方案提供商加速升级&#xff0c;提升服务响应速度和服务质量。 锐捷网络是行业领先的ICT基础设施及行业解决方…

[CAN] DBC数据库编辑器的下载与安装

DBC数据库编辑器 1 概述2 下载与安装2.1 下载2.2 安装 1 概述 VectorCANdb是一款专为CAN&#xff08;Controller Area Network&#xff09;通信设计的数据管理工具。这款软件为工程师们提供了一个全面、高效的平台&#xff0c;用于定义、修改和管理与CAN网络相关的数据&#xf…

rospkg.os_detect.OsNotDetected检测不到系统的解决办法

遇到上述报错时&#xff0c;可以参考博客进行解决

易舟云:让中小企业财务管理变得触手可及

在现代企业运营中&#xff0c;财务管理的精准和高效至关重要。对于中小企业来说&#xff0c;一款专业且易于使用的财务软件更是必不可少的工具。今天&#xff0c;我们就来详细了解一款深受中小企业喜爱的财务软件——易舟云。 财务管理的云端革命 随着云技术的发展&#xff0c;…

LeetCode:419. 甲板上的战舰(遍历 Java)

目录 419. 甲板上的战舰 题目描述&#xff1a; 实现代码与解析&#xff1a; 遍历 原理思路&#xff1a; 419. 甲板上的战舰 题目描述&#xff1a; 给你一个大小为 m x n 的矩阵 board 表示甲板&#xff0c;其中&#xff0c;每个单元格可以是一艘战舰 X 或者是一个空位 . &…

关于flutter 启动 页面加载空白(三四秒空白页面)

一:可以在 对应的xml配置启动动画 <item><bitmapandroid:gravity"center"android:src"mipmap/ic_launcher" /></item> 二&#xff1a;以下是对应的文件目录 注意事项&#xff1a;俩处xml都配置一下&#xff0c;配置一样就可以了

常见数据编码方式

数据编码方式&#xff1a; 二进制数字信息在传输过程中可以采用不同的代码&#xff0c;各种代码的抗噪声特征和定时功能各不相同&#xff0c;实现费用也不一样。下面介绍几种常用的编码方式。 1、单极性码 在这种编码方案中&#xff0c;只用正的&#xff08;或负的&#xff09;…