首页 > 数据库 >mysql之 关联表(left join | right join | inner join | union)

mysql之 关联表(left join | right join | inner join | union)

时间:2024-10-25 16:11:04浏览次数:7  
标签:right join name union score user select

一.首先给出两张表
user表:用户基本信息表

score表:分数表(学生在哪一天,哪一科目,所考分数)

二.分别解释 left join ,right join ,inner join,union

1.left join 

原理 user left join score = 以user表为准,去查询所有user表成员的分数

select *
from user
left join score on user.name = score.student_name

 2.right join 

原理 user rightjoin score = 以score表为准,去查询所有score表成员的基本信息

select *
from user
right join score on user.name = score.student_name

 3.inner join

原理:user inner join score = 交集,只有user和score都存在的成员,才会被查询出来

select *
from user
inner join score on user.name = score.student_name

 4.union(重点)

原理:要查询的列,都一样,才可以union

示例:我要查询(20241011,20241012,20241013)三天内考试,英语科目,考试总人数,以及及格人数

 

select *
from (
select 
"20241011" as date,
count(*) as all_people_num,
sum(case when score>=60 then 1 else 0 end) as jige_people_num
from score where date_time="20241011" and subject_name="英语"
)as t1 union(
select 
"20241012" as date,
count(*) as all_people_num,
sum(case when score>=60 then 1 else 0 end) as jige_people_num
from score where date_time="20241012" and subject_name="英语"
)union(
select 
"20241013" as date,
count(*) as all_people_num,
sum(case when score>=60 then 1 else 0 end) as jige_people_num
from score where date_time="20241013" and subject_name="英语"
)

 

标签:right,join,name,union,score,user,select
From: https://www.cnblogs.com/wusenwusen/p/18502782

相关文章

  • Playwright 源码 启动 Chromium 的命令
    问:Playwright无声无息地启动了Chromium,到底底层执行了个啥子?带着问题,开启探险之旅!!!......
  • 探索Playwright:前端自动化测试的新纪元
    作者:京东保险张新磊背景在前端开发中,自动化测试是确保软件质量和用户体验的关键环节。随着Web应用的复杂性不断增加,手动测试已经无法满足快速迭代和持续交付的需求。自动化测试通过模拟用户与应用的交互,能够高效地执行重复性测试任务,加快测试周期,提升测试覆盖率,从而更早地发......
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-3-启动浏览器(详细教程)
    1.简介 通过前边两篇文章跟随宏哥学习想必到这里已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动两大浏览器。按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome。但是微软已经在Win10中不维护IE浏览器了,用Edge浏览器代替或者兼容IE模式的浏览器,因此宏哥这......
  • PG 的 MergeJoin 就是鸡肋
    好久没写博客,平时工作非常忙,而且现在对接的应用基本都是微服务架构。微服务这种架构平时也很难遇到复杂SQL,架构层面也限制了不允许有复杂SQL,平时处理的都是简单一批的点查SQL。基本上优化的内容就是业务,架构上改改和开发扯皮,每条SQL扣毫秒这样来搞,并发情况下程序接口的整体RT降......
  • Fork/Join框架
    Fork/Join框架是Java7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架packageforkjoin;importjava.util.concurrent.ExecutionException;importjava.util.concurrent.ForkJoinPool;importjava.util.co......
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-2-环境准备与搭建-基于Maven(详细
    1.简介上一篇宏哥已经讲解和分享了如何通过引入jar包来搭建Java+Playwright自动化测试环境,这一种是比较老的方法,说白了就是过时的老古董,但是我们必须了解和知道,其实maven搭建无非也就是下载引入相关的jar包,只不过相比之下是简单方便了,了解其本质可以帮助我们更好的学习maven搭建......
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-2-环境准备与搭建-基于Maven(详细
    1.简介上一篇宏哥已经讲解和分享了如何通过引入jar包来搭建Java+Playwright自动化测试环境,这一种是比较老的方法,说白了就是过时的老古董,但是我们必须了解和知道,其实maven搭建无非也就是下载引入相关的jar包,只不过相比之下是简单方便了,了解其本质可以帮助我们更好的学习maven搭建......
  • Python join()函数使用详解
    在Python中,join()函数是字符串的一个方法,用于将一个可迭代对象(如列表)中的元素连接成一个字符串。join()函数的语法如下:string.join(iterable)其中,string是连接中的字符串,iterable是要连接的可迭代对象。下面是join()函数的使用示例:#连接列表中的元素my_list=['Hello',......
  • sql手工注入获取库、表名(union联合注入)(个人学习笔记)
    1,发现存在sql漏洞的网站当我们发现一个网站存在sql注入的漏洞时,可以使用sql手工注入来获取信息,如下列的网站sql注入的原理是前端给后端发送指令的时候由于设计者未考虑安全,导致用户可以加上自己的指令进去,从而让服务器完成一些列危险的操作2,确定列表数名首先,我们要先知道......
  • c++如何使用pthread_join函数配合pthread_create函数来创建和等待线程完成,实现线程同
    在C++中,pthread_create 和 pthread_join 是POSIX线程库(pthread)的一部分,用于创建和管理线程。pthread_create 用于创建一个新的线程,而 pthread_join 用于等待一个线程的执行完成,从而实现线程同步与控制。基本步骤使用 pthread_create 函数创建一个线程。线程的工作由......