SQL 表连接学习总结

2023-11-06

1)3种连接

完全外部连接:所有表都连接,允许null值存在

内连接:

select字段名

from表名1 inner join表名2 on表名1.字段名=表名2.字段名

注意内连接inner可以省略,直接使用join默认为内连接

(剔除含有空值的行)

 

左连接:

select字段名

from表名1 left join表名2 on表名1.字段名=表名2.字段名

(剔除左边空白的行)

 

右连接:

from表名1 right join表名2 on表名1.字段名=表名2.字段名

 

2)练习

例:查询有球员名叫Mario进球的队伍1(team1),队伍2(team2)及球员姓名

select team1,team2,player from game inner join goal on game.id=goal.matchid

where player like'%Mario%'

 

例:查询队伍1(team1)的教练是“Fernando Santos”的球队名称、比赛日期和赛事编号

select mdate,teamname

from game join eteam on game.team1=eteam.id

where coach='Fernando Santos'

 

表格也可以别名代表原本的表

例:from game ga join eteam et on ga.team1=et.id

多表连接时字段名不唯一时一定要指明表名

例:查询至少出演过第1主角30次的演员名

select name from actor ac join casting ca on ac.id=ca.actorid

where ord=1

group by name

having count(name)>=30

也可以是count(movieid)

 

例:查询在比赛前十分钟有进球纪录的球员,他的队伍编号、教练、进球时间

select teamid,coach,gtime

from goal join eteam on goal.teamid=eteam.id

where goal.gtime<10

 

例:查询每场比赛,每个球队的得分情况,按照以下格式显示

 

最后按照举办时间(mdate) 、赛事编号(matchid) 、队伍1 (team1)和队伍2 (team2)排序

select mdate,team1

,sum(case when team1=teamid then 1 else 0 end) score1

,team2

,sum(case when team2=teamid then 1 else 0 end) score2

from

game join goal on game.id=goal.matchid

group by mdate,team1,team2

order by mdate,matchid,team1,team2

 

非聚合字段全部要作为group by分组依据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 表连接学习总结 的相关文章

  • 金融 - 计算到期收益率

    我读了this https stackoverflow com questions 1173555 open source financial library specifically yield to maturity发布关于 net 库
  • MSSQL:如何使用代码编写存储过程创建脚本?

    我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information schema routines 查询存储过程定义列表 SELECT t1 Routine Definition FROM server1 MyDatabase
  • 如何使用 ALTER TABLE 添加新列并使其唯一?

    我该如何使用ALTER TABLE添加新列并使其独一无二 取决于 DBMS 但我认为以下内容相当可移植 ALTER TABLE table name ADD column name datatype ALTER TABLE table na
  • DBX 错误:驱动程序无法正确初始化

    我在跑步德尔福XE3 终极版 MySQL 数据库 这是我点击时收到的错误Test Connection 作为回应 我在 xampp 目录中找到了 libmysql 库 并将其复制到我的 System32 目录中 但这是行不通的 此消息指的是
  • TSQL:无法对 COUNT(*) 执行聚合函数 AVG 来查找一天中最繁忙的时间

    考虑一个保存日志数据的 SQL Server 表 重要的部分是 CREATE TABLE dbo CustomerLog ID int IDENTITY 1 1 NOT NULL CustID int NOT NULL VisitDate
  • xQuery LIKE 运算符?

    有没有办法以与 SQL 相同的方式使用 XQuery 执行 LIKE 操作 我不想构造一些 startswith endswith 和 contains 表达式 我想要实现的目标的示例 for x in user where x first
  • MySQL解释更新

    作为我大学复习的一部分 我试图回答以下问题 至少在表的一个属性上创建索引 employees 数据库 您可以在其中使用 MySQL EXPLAIN 工具 清楚地显示好处 在条款或检索方面 和负面 在 更新条款 创建相关索引的信息 对于第一部
  • 法语和西班牙语的特殊字符可以保存在 varchar 中吗?

    法语和西班牙语中有普通英语中不使用的特殊字符 重音元音等 varchar 是否支持这些字符 或者我需要一个 nvarchar 吗 注 我愿意NOT希望讨论我是否应该使用 nvarchar 还是 varchar 您在谈论什么 SQL 实现 我
  • 删除前导零

    给定列中的数据 如下所示 00001 00 00026 00 我需要使用 SQL 删除空格后面的所有内容以及值中的所有前导零 以便最终输出为 1 26 我怎样才能最好地做到这一点 顺便说一句 我正在使用 DB2 这已在 DB2 for Li
  • Python 子进程、mysqldump 和管道

    我在尝试构建简单的备份 升级数据库脚本时遇到问题 错误出现在使用子进程的 mysqldump 调用中 cmdL mysqldump user db user password db pass domaindb gzip gt databas
  • VIEW for 表结合 UNION ALL 的 MySQL 性能

    假设我有 2 张桌子MySQL create table persons id bigint unsigned not null auto increment first name varchar 64 surname varchar 64
  • 了解涉及 3 个或更多表时 JOIN 的工作原理。 [SQL]

    我想知道是否有人可以帮助我提高对 SQL 中 JOIN 的理解 如果它对问题很重要 我会特别考虑 MS SQL Server 取 3 个表 A B A 通过某些 A AId 与 B 相关 和 C B 通过某些 B BId 与 C 相关 如果
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • 重用 PDO 语句 var 会使进程崩溃

    我重用一个变量来存储两个不同的 PDO mysql 语句 stmt dbh gt prepare SELECT stmt gt execute stmt dbh gt prepare UPDATE crash here Error in o
  • 使用显式值进行 BigQuery 合并

    据我所知 BigQuery 支持合并两个表 目前 INSERT操作允许将显式值插入表中 例如 INSERT dataset Inventory product quantity VALUES top load washer 10 front
  • 如何在 MySQL 中启用严格 sql_mode?

    我怎样才能启用严格sql mode在 MySQL 中 我想从 SQL 中获取数据并在中处理相同的数据strict mode 我现在的sql mode is mysql gt SELECT sql mode sql mode NO ENGIN
  • 如何将此本机 SQL 查询转换为 HQL

    所以我有这个很长的复杂的 Native SQLQuery string hql SELECT FROM SELECT a rownum r FROM select f2 filmid f2 realisateurid f2 titre f2
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • SQL Server查询麻烦,多对多关系

    不知道如何用一行字来表达这个问题 对标题表示歉意 我的数据库中有3个表 例如 Shop Item 商店库存 Shop 和 Item 具有多对多关系 因此 ShopStock 表将它们链接起来 ShopStock 中的字段是 ID ShopI
  • Yii2:无法将列值更新+1

    创建新记录时 我需要将列值更新 1 public function actionCreate model new CreateBookings if model gt load Yii app gt request gt post Yii

随机推荐

  • C# 结构体的使用

    先说一下结构体和类的区别 1 结构体定义的是变量 保存在栈当中 类的对象 实例 保存在堆当中 引用保存在栈当中 结构体是值类型 类是引用类型 2 不能在结构体中定义默认的构造方法 无参 类中可以定义 3 结构体中自定义构造方法后 编译器会提
  • C++基础:for循环

    美好的知识点从出题开始 输出1 100所有的奇数 看到这道题 你可能有点懵 回顾标题 你找到办法了 但你不知道怎么写 来看看for循环的代码框架吧 for 控制变量初始化表达式 条件表达式 增量表达式 语句1 刚看到这 你肯定不太懂 我实际
  • 面试:Tomcat如何优化

    一 增大tomcat运行内存 例如 从默认的 256M增大到2G SET CATALINA OPTS Xms2048m Xmx4096m XX MaxNewSize 512m XX MaxPermSize 256m set JAVA OPT
  • “此帐户并未得到从这个工作站登录的授权”问题

    此帐户并未得到从这个工作站登录的授权 问题 转自 http blog 163 com yumin wang 126 blog static 36293550201210303413140 问题 访问网络共享文件夹时 出错提示为 此帐户并未得
  • [创业-33]:股权、期权、期股的区别

    目录 1 基本概念 1 1 股权 1 2 期权 1 3 期股 二 比较 2 1 享有的权益 2 2 在退出机制 2 3 兑现机制 2 4 分配方式 2 5 获利方式 附录 雷军关于创业公司的股权解读 1 基本概念 1 1 股权 股权 是有限
  • 数据包协议设计(通讯协议的设计)

    一 为什么要设计通讯协议 通常 多设备之间进行通讯多使用数据包的方式 如何从一堆的数据中确定哪些是有效数据 以及这些数据要表达什么意思 为解决这些问题 通常我们需要设计一个通讯协议 依照通讯协议对数据进行解析 就能够正确的找到并使用这些数据
  • 上下文相关音素-状态绑定

    在发音过程中 因为协同发音的影响 同一个音素在不同的位置 其发音变化很大 如下图所示 同样的元音 eh 在不同的单词中的发音在频域上区分非常明显 因为单音素monophone 是上下文独立的 context independent 为了能够
  • RabbitMQ中的限流、return机制、死信队列

    目录 优点 缺点 1 限流 2 return机制 3 死信队列 优点 高可用性 RabbitMQ支持集群和镜像队列等多种方式实现高可用性 保证系统稳定运行 可靠性强 RabbitMQ使用AMQP协议作为消息传递的标准 能够确保消息传递的可靠
  • TypeError: __init__() got an unexpected keyword argument 'categorical_features'

    我的代码 scikit learn 0 22 1 python 3 7 4 错误如下 TypeError init got an unexpected keyword argument categorical features 错误提示的意
  • Visio中插入Mathtype公式

    Visio中插入Mathtype公式 打开visio软件 依次点击 插入 对象 mathtype 6 0 equation 确定 也可以得到我们想要的公式 点击 对象 然后显示出Mathtype公式 点击 Mathtype 7 0 然后显示
  • step7-micro/win 在win10系统下安装步骤

    1 摘要 安装不成功可以多尝试几次 别人安装N次 下载过N个安装包 也就这个安装包安装成功了 其他的不成功 原因尚未可知 2 准备工作 软件包链接 https pan baidu com s 1VcKuwNO3czAi0zSbJiqjDw
  • 关于老赵让改成bootstrap框架搭建的过程

    客户就是上帝 你大爷的 jsp代码 数据与springMvc交互
  • 做一个Spring Boot小例子

    在我的 Spring Boot 框架介绍和使用 里介绍了Spring Boot 但是没有例子 所以这一篇的主要内容就是来做一个小例子 结合我上面那篇一起看效果更佳 运行项目 创建项目和上篇文章一样 我用了2 0的快照版本的Spring Bo
  • sum1(2,3)和sum1(2)(3)

    function sum1 x y var n x if y return x y else return function y return n y sum1 2 3 sum1 2 3 function sum var num argum
  • Python的nonlocal与global关键字

    nonlocal和global是Python中用于在函数内部访问外部作用域变量的关键字 一 nonlocal关键字 nonlocal用于在嵌套函数中修改外部函数的局部变量 当在一个函数内部定义了另一个函数 并且内部函数想要修改外部函数的局部
  • IAP与APP(一):两个固件使用Keil5默认设置编译后,利用J-Flash偏移APP的地址然后合并IAP烧写,运行时出现在跳转APP时无限重启的现象

    最近做了个在线升级 并没有使用系统 芯片 STM32F103C8T6 环境 Keil 5 STM32CubeMX 5 2 1 跳转和写FLASH在网上一搜其实不少 主要注意要重定向中断向量表和跳转前要关闭所有中断 在写好IAP和APP两个固
  • linux嵌入式开发常用下载链接

    linux kernel ARM 开源wike ARM GNU编译工具链下载
  • DS18B20温度传感器简介和1-Wire驱动程序

    目录 DS18B20简介 DS18B20的两种供电方式 64位ROM 温度传感器 1 Wire Bus简介 DS18B20通信时序 初始化 ROM相关命令 后续包含任何数据交换的操作 功能相关命令 后续包含任何数据交换的操作 单个DS18B
  • python数据库编程:Python连接Mssql基础教程之Python库pymssql

    前言 pymssql模块是用于sql server数据库 一种数据库通用接口标准 的连接 另外pyodbc不仅限于SQL server 还包括Oracle MySQL Access Excel等 另外除了pymssql pyodbc还有其他
  • SQL 表连接学习总结

    1 3种连接 完全外部连接 所有表都连接 允许null值存在 内连接 select字段名 from表名1 inner join表名2 on表名1 字段名 表名2 字段名 注意内连接inner可以省略 直接使用join默认为内连接 剔除含有空