sql 多表多行模糊查询_从零开始学习SQL(五)多表查询

68e128c5947f2f5c9f0342c9bd527f20.png

经过之前的学习,现在我们已经对查询有了一定的了解,但是我们目前的所有查询都只能找到在一张表中的数据,但如果我们需要寻找分布在多张表格中的数据时,这种之前的查询就做不到了,这时就需要引入一种新的查询方法,多表查询。

一、联结的介绍

还记得我们最开始数据库结构中提到的联结(JOIN)吗?它就是我们用来连接多个表格的工具,当需要提取的数据分布在不同表格时。我们可以使用JOIN链接,多个数据库关联起来,

c1c591537522e45ffe93d917def0262c.png
图片来自猴子老师LIVE课程

如图所示这四张表格使用了JOIN相互连接,学生表学号与成绩表学号连接,成绩表课程号与课程表课程号连接,课程表教师号与教师表教师号连接,表之间的连接可以这样写

SELECT
FROM 学生表 as a1 JOIN 成绩表 as a2
ON a1.学号 = a2.学号
JOIN 课程表 as a3 /*如果需要关联第三个表*/
ON a2.课程表 = a3.课程表

在表和表之间使用 JOIN 来进行联接,用来关联的字段则写在 ON 后面

二、联结的种类

连接又分类几个种类

1.交叉连接,交叉连接会将表中的每一行和另外一张表中的每一行合并在一起,结果的行数是两张表行数的乘积(一共6行)。

d3455d0ac2e77ce45f7b9017c6b30af3.png

2.内连接,内连接将两张表中共有的数据相联,如图所示,我们可以看到通过学号相联结的时学号0001为两张表中共有的行,因此将学号为0001的列与成绩表中0001的列相联结。

ca9923b19bce1ee153510bad669c9973.png

8efa149250f40ce2901ceea9ae6de243.png

3.左联结/右联结,左联结会将左侧表中的全部数据与右侧表中的数据相联结。右边没有的数据则用空值表示。右联结则会将右侧表中的全部数据与左侧表中的数据相联结,左边表没有的数据则为空值。

b91c07dcad59762a1cbc154836722aee.png

dc4c79e6f47c7e31a2b74645e575dd87.png

4.全联结,全连接会将左右两边的值都进行合并,没有值的行则会用空值表示

65979f4b855ad521da1cf11b50f88e1d.png

三、CASE表达式

CASE表达式可以用来解决复杂的问题

CASE WHEN<判断表达式> THEN <表达式>WHEN<判断表达式> THEN <表达式>WHEN<判断表达式> THEN <表达式>.......ELSE
END

CASE表达式可以用来进行复杂的判断,每一句CASE表达式都能进行一个判断,当满足这个条件时就会结束,如果不满足这个条件则会继续运行后面的WHEN语句,最后的语句都没有找到符合条件的语句则会运行ELSE子句。

每一个CASE表达式都必须含有END

四、练习题

将分数分段并统计各分段的人数

SELECT c1.课程号,c2.课程名称,
SUM(CASE WHEN 成绩 BETWEEN 70 AND 85 
THEN 1 ELSE 0 END) AS '[85-70]',
SUM(CASE WHEN 成绩 BETWEEN 60 AND 70
THEN 1 ELSE 0 END) AS '[70-60]',
SUM(CASE WHEN 成绩 <60 THEN 1 ELSE 0 END) AS '[<60]'
FROM score as c1 JOIN courser as c2
ON c1.课程号 = c2.课程号
GROUP BY c1.课程号
The JOIN operation/zh​sqlzoo.net

4.列出球員名字叫Mario (player LIKE 'Mario%')有入球的 隊伍1 team1, 隊伍2 team2 和 球員名 player

SELECT team1,team2,player
FROM goal as c1 JOIN game as c2
ON id =matchid
WHERE player LIKE 'Mario%'

6.列出'Fernando Santos'作為隊伍1 team1 的教練的賽事日期,和隊伍名。

SELECT mdate,teamname
FROM game as c1 JOIN eteam as c2
ON c1.team1 = c2.id
WHERE coach = 'Fernando Santos'

8.列出全部賽事,射入德國龍門的球員名字

SELECT DISTINCT(player)
FROM game JOIN goal ON matchid = id 
WHERE (team1='GER' or team2='GER')
AND teamid <> ('GER')

12.每一場德國'GER'有參與的賽事中,列出賽事編號 matchid, 日期date 和德國的入球數字。

SELECT matchid,mdate,count(team1)
FROM game AS c1 JOIN goal as c2
ON c2.matchid = c1.id 
WHERE (team1 = 'GER' OR team2 = 'GER')
AND c2.teamid = 'GER'
GROUP BY c2.matchid,mdate
xietq:从零开始学习SQL(六)练习题目​zhuanlan.zhihu.com
42715da927080d783d62a684bcd1018b.png

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

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

相关文章

最新.NET MAUI有什么惊喜?

点击蓝字关注我们.NET 6 RC1 现已发布啦&#xff0c;我们为 .NET 多平台应用程序 UI (MAUI) 引入了所有的新布局。这是性能和可靠性的重大变化。我们很高兴我们还增加了一些关于accessibility方面的基于新的SemanticService、字体缩放选项和对Xamarin.Forms 效果的兼容性的功能…

亲一下就搞定的事,绝不花钱解决!

1 好了&#xff0c;你表演吧&#xff0c;球不看了2 “你这个车&#xff0c;至少得100条小鱼干啊” 3 羡慕了4 还…还有这种操作&#xff1f;5 被秀了一脸哈哈哈6 没有什么是一个么么哒解决不了的&#xff01;你点的每个赞&#xff0c;我都认真当成了喜欢

微软发布了Visual Studio 2022 RC版,并将在11月8日发布正式版

微软今天发布了Visual Studio 2022 最接近正式发布的RC版本&#xff0c;同时宣布在11月8日发布正式版&#xff0c;届时将在线上发布虚拟的发布活动&#xff0c;具体参见&#xff1a;https://devblogs.microsoft.com/visualstudio/join-us-november-8th-for-the-launch-of-visua…

arcgis oracle trace,ArcGIS应用Oracle Spatial特征分析

该文章并不是将Oracle Spatial与ST_Geometry做对比&#xff0c;关于两者的对比&#xff0c;可以参考&#xff1a;http://www.linuxidc.com/Linux/2011-10/45492.htm&#xff0c;这里从数据结构&#xff0c;到性能对比&#xff0c;都描述的很清楚。其实这篇文件就是说明一下在A…

SharePoint Timer Job

首先介绍一下什么是定时器作业&#xff0c;说的再多&#xff0c;也不如一张图说的清楚这两张图应该把我想说的已经表达清楚了&#xff0c;下一步介绍一下如何自定义Timer Job第一步&#xff1a;创建一个类&#xff08;CustomTimerJob.cs&#xff09;第二步&#xff1a;引用 usi…

这次使用一个最舒服的姿势插入HttpClient拦截器技能点

码甲哥继续在同程艺龙写一点大前端&#xff0c;今天我们来了解一下如何拦截axios请求/响应&#xff1f;这次我们举一反三&#xff0c;用一个最舒适的姿势插入这个技能点。本文阅读耗时5 minute&#xff0c;行文耗时5 Days。axios是一个基于 promise 的网络请求库&#xff0c;可…

甜蜜助攻!情侣之间,到底能有多甜甜甜甜甜甜甜甜

▲ 点击查看没有一丝丝防备&#xff0c;还有 5 天&#xff0c;七夕就要到了。如何借「物」聊表爱意&#xff0c;大概是最近让很多拥有另一半的人头疼不已的问题。重点是&#xff0c;礼物挑不好&#xff0c;小心七夕就变送命题&#xff01;女孩子们到底喜欢什么礼物&#xff1f;…

多个查询语句能否一次把结果导出_mysql表中base64格式数据查询

需求&#xff1a;为了避开特殊字符(如&#xff1a;单引号)影响&#xff0c;把某些字段保存为base64格式。SQL语句直接解码base64编码数据&#xff0c;直接查询出原始数据。表中数据如下很不直观&#xff0c;当根据where条件查询时&#xff0c;肉眼不能直接从结果提取到可读信息…

【转帖】Reporting Service rdl报表,在aspx页面显示一张完整的RDL报表

第一次弄RDL报表. 权当自己的一个随手笔记吧.希望能有好的意见或者建议欢迎大家提出来. 一起学习.灰常欢迎.. 第一步,先找出你的Reporting Server 的 URL . 如图&#xff1a; 其中URL 就是ReportingServer 的URL 在新建的aspx页面部署的时候非常重要. 虚拟目录的话,在WIN 7 上…

志愿者招募 | 2021 .NET Conf China

回顾往届 .NET Conf China 活动志愿者团队承担着非常重要的职责参与到活动组织和安排过程的方方面面志愿者的团队协作和专业素养展示出了高度的凝聚力和号召力无私付出和敬业得到了多方的好评今年&#xff0c;我们诚邀更多志愿者加入与助力为 2021年中国 .NET 开发者大会提供志…

数学上最有趣的数,装得了逼,撩得了妹!

全世界只有3.14 % 的人关注了爆炸吧知识一分钟记住走马灯数那些美丽有趣的自然数一定有它存在的意义&#xff0c;就像帅气逼人的超模君依然具有令人羡慕的才华。但是&#xff0c;存在这么一些自然数&#xff0c;例如走马灯数一直被视为无用&#xff0c;一身正气的超模君决定找到…

php运算符优先级题目,详解php运算符优先级

php中&#xff0c;一个运算可能是有多个运算符连接在一起的&#xff0c;我们给其运算的执行决定先后顺序&#xff0c;下面由小编给大家介绍php运算符优先级&#xff0c;希望对需要的朋友有所帮助&#xff01;在php运算中遵循的规则就是&#xff1a;优先级高的运算符优先执行&am…

阿里开发规范文档_华为阿里等技术专家15年开发经验总结:SSM整合开发实战文档...

前言Spring自2002年诞生至今&#xff0c;已有近20年的历史&#xff0c;虽然几经变迁&#xff0c;但始终在继续发展和精进。Spring目前由Pivotal维护和开发。Pivotal是PaaS&#xff08;平台即服务&#xff09;的领导者&#xff0c;也是消息中间件RabbitMQ的缔造者。12306的流量销…

Swift中的区间运算符和半开区间运算符

2019独角兽企业重金招聘Python工程师标准>>> 区间&#xff0c;使用三个点表示&#xff08;a...b&#xff09;&#xff0c;表示从a到b&#xff0c;包含a和b&#xff0c;b要大于a&#xff0c;包含第一个和最后一个 半开区间&#xff0c;&#xff08;a..<b&#xf…

使用 Directory.Build 来消除项目文件中的重复配置

使用 Directory.Build 来消除项目文件中的重复配置Intro如果解决方案里的项目比较多的话&#xff0c;往往会有很多重复的项目属性&#xff0c;通常我们可以使用独立的 props 属性文件来配置公用的属性&#xff0c;而一般的属性文件都需要手动的 Import 到项目文件中&#xff0c…

chromium关闭更新_Win10今年最重磅更新!Win10 2004正式版详尽体验

今年首个Windows 10正式版更新于近日上架MSDN&#xff0c;版本号最终确定为Build 19041.208(v2004)&#xff0c;这是一个RTM版本&#xff0c;也就是送到OEM厂商压盘的正式版本&#xff0c;向用户正式推送的时候不会再有什么功能变化。按照微软的一贯逻辑&#xff0c;上半年更新…

Android网络通信的六种方式示例代码

表1展示了Android SDK中的一些与网络有关的API包名表1. Android SDK 网络包包 描述 API LevelJava.net 提供与联网有关的类&#xff0c;包括流和数据包&#xff0…

技术分享 | 业务模板的技术实践

源宝导读&#xff1a;“业务模板”作为天际建模平台3.0推出的重要特性&#xff0c;它将元数据复用发挥到了极致&#xff0c;通过业务模板几乎可以覆盖整个建模元数据开发流程&#xff0c;提供业务场景级别的复用能力。本文将介绍“业务模板”的设计原理、实现方案和应用场景。一…

为什么那么好的女孩子还单身?

1 终于知道家里的吃的都是怎么没的了&#xff01;2 我的小鱼干&#xff01;快给我&#xff01;3 这几只狗子真是太皮了&#xff01;4 您点的肉香满溢披萨到了~5 一位新手爸爸分享了自己关于为人父母的感悟6 应采儿&#xff1a;为什么那么好的女孩子还单身&#xff1f; 陈小春&a…

RHCS创建高可用集群apche服务器

实验环境&#xff1a; 系统版本&#xff1a;RHEL5.4 将selinux关闭&#xff0c;刷新iptables -F 配置yum仓库 192.168.0.25 station25.example.com 宿主机 192.168.0.24 station24.example.com 节点(虚拟机) 192.168.0.39 station39.example.com 节点(…