首页 > 其他分享 >联表查询joinON详解

联表查询joinON详解

时间:2023-12-11 19:47:45浏览次数:25  
标签:joinON grade student2 查询 -- 详解 联表 copy id

-- 联表查询 join
-- 查询参加了考试的同学(学号,姓名,成绩)
ALTER TABLE `student2_copy` ADD grade INT(100)
UPDATE `student2_copy`SET `grade`=66 WHERE id=1;
UPDATE `student2_copy`SET `grade`=89 WHERE id<8 AND id>2 -- 添加成绩
SELECT * FROM`student2`;
SELECT * FROM `student2_copy`
/*思路
1.分析需求,分析查询的字段来自那些表(连接查询)
2.确定使用哪种连接查询?主要三种,共七种
3.确定交叉点(这两个表中哪个数据是相同的)
判断的条件:学生表中的id=id
*/
ALTER TABLE `student2_copy`DROP `grade`-- 删除表字段
SELECT a.`id`,a.`name`,b.`grade`
FROM `student2_copy` AS a
INNER JOIN `student2_copy_copy` AS b
WHERE a.`id` = b.`id`
-- right join
SELECT c.`id`,c.`name`,c.`sex`,d.`grade`
FROM `student2_copy` c
RIGHT JOIN `student2_copy_copy` d
ON c.`id` = d.`id`
-- left join
SELECT e.`id`,e.`name`,e.`sex`,f.`grade`
FROM `student2_copy` e RIGHT JOIN `student2_copy_copy` f
ON e.`id` = f.`id`
/*
操作 描述
inner join 如果表中至少有一个匹配,就返回行
left join 会从左表中返回所有的值,即使右表中没有匹配
right join 会从右表中返回所有的值,即使左表中没有匹配*/
-- 查询缺考的同学
SELECT e.`id`,e.`name`,e.`sex`,f.`grade`
FROM `student2_copy` e RIGHT JOIN `student2_copy_copy` f
ON e.`id` = f.`id`
WHERE `grade` IS NULL
-- 思考题(查询参加考试的同学的名字,邮箱,学号,出身日期,贯籍)
SELECT e.`id`,e.`name`,e.`birthday`,e.`address`,e.`email`,f.`grade`
FROM `student2_copy` e RIGHT JOIN `student2_copy_copy` f
ON e.`id` = f.`id`
WHERE `grade` !='NULL'

标签:joinON,grade,student2,查询,--,详解,联表,copy,id
From: https://www.cnblogs.com/ly123dcom/p/17895391.html

相关文章

  • 模糊查询操作符详解
    --模糊查询--查询姓狂的同学--like结合 %(代表零到任意个字符) _(代表一个字符)SELECT`id`,`name`FROM`student2`WHERE`name`LIKE'狂%'INSERT`student2`(`name`)VALUES('狂神');--添加--查询姓狂的同学,名字后面只有一个字的SELECT`id`,`name`FROM`student2`WHERE`na......
  • 列的数据类型详解
    数据库的列的类型1.数值tinyint 十分小的数据 1字字节smallint 较小的数据 2个字节mediuminl 中等大小的数据 3个字节int 标准的整数 4个字节 常用的bigint 较大的数据 8个字节float 浮点数 4个字节clouble 浮点数 8个字节 存在精度问题clecimal 字符串形式的浮点数 金融......
  • Delete和Truncate详解
    --delete命令--语法:deletefrom表名[where条件]--删除数据(避免这样写,会全部删除)DELETEFROM`student2`--删除指定数据DELETEFROM`student2`WHEREid=1;--truncate命令--作用:完全清空一个数据库表,表的结构和索引,约束不会变TRUNCATE`student2`/*delete与truncate的区别相......
  • insert语句详解
    --insert插入语句(添加)--语法insertinto表名([字段名1,字段名2,字段名3])values('值1(字段名123)'),('值2(字段名123)'),('值3(字段名123)'),,,INSERTINTO`student2`(`name`)VALUES('焯');--由于主键自增我们可以省略(如果不写表的字段,他就会一一匹配)INSERTINTO`student2`(`name`)......
  • 一文详解大模型归因机制,幻觉问题有救了!
    作者|谢年年、python大模型的幻觉问题一直是一个亟待解决的挑战。由于大模型的训练语料来源广泛,且都是未经筛选的现实世界文本,预训练的目标也仅在于预测下一个单词,并未对生成内容的真实性进行建模和验证,这导致了大模型幻觉问题的频繁出现。为了增强模型事实准确性和可验证性,一种......
  • Redis 3 种特殊数据类型详解、Redis内存碎片
    CacheAsidePattern(旁路缓存模式)CacheAsidePattern是我们平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。CacheAsidePattern中服务端需要同时维系db和cache,并且是以db的结果为准。下面我们来看一下这个策略模式下的缓存读写步骤。写:先更新db然......
  • 瑞萨RZ/G2L核心板Linux Log目录文件详解
    为了排除系统问题,监控系统健康状况以及了解系统与应用程序的交互方式,我们需要了解各log文件的作用,以G2L中yocto文件系统为例,在系统/var/log/目录下会存放记录系统中各个部分的log文件作用如下:1. 文件详情下图为系统中 /var/log目录下的文件。图1.1目录下的文件Log文件作用......
  • js判断文件类型详解
    js判断文件类型详解通过file的type属性判断<inputtype="file"onchange="onchangecb(this)"/><script>functiononchangecb(e){constfile=e.files[0];console.log(file.type);}</script>像html中input标签,就是根据选择......
  • Unity3D 任务系统的架构与设计详解
    前言Unity3D是一款非常强大的游戏引擎,它提供了丰富的功能和工具,使得游戏开发变得更加简单和高效。在游戏开发中,任务系统是一个非常重要的组件,它可以使游戏更加有趣和挑战性。在本文中,我们将详细介绍Unity3D任务系统的架构与设计,包括技术详解和代码实现。对惹,这里有一个游戏开......
  • Unity3D 基于状态机的流程控制详解
    Unity3D是一款强大的游戏开发引擎,它提供了丰富的功能和工具,方便开发者创建各种类型的游戏。在游戏开发过程中,流程控制是一个重要的部分,它决定了游戏的逻辑和玩家的体验。在Unity3D中,我们可以使用状态机来实现流程控制,本文将详细介绍基于状态机的流程控制的技术和代码实现。对啦!这......