news 2026/4/4 18:09:25

MySQL表的内连和外连

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL表的内连和外连
  • 内连接
  • 外连接
    • 左外连接
    • 右外连接
  • OJ

内连接

实际上我们在表的复合查询部分用的就是内连接,只不过语法不是很规范。
标准语法:

select字段from1innerjoin2on连接条件and其他条件;

如,显示SMITH的名字和部门名称:
之前的写法:

mysql>selectename,dnamefromemp,deptwhereemp.deptno=dept.deptnoandename='SMITH';+-------+----------+|ename|dname|+-------+----------+|SMITH|RESEARCH|+-------+----------+1rowinset(0.00sec)

标准写法:

mysql>selectename,dnamefromempinnerjoindeptonemp.deptno=dept.deptnowhereename='SMITH';+-------+----------+|ename|dname|+-------+----------+|SMITH|RESEARCH|+-------+----------+1rowinset(0.00sec)

外连接

外连接又分为左外连接和右外连接。

左外连接

如果联合查询,左侧的表完全显示我们就说是左外连接。

语法:

select字段名from表名1leftjoin表名2on连接条件

示例:
我们先创建两个表:

createtablestu(idint,namevarchar(30));-- 学生表insertintostuvalues(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');createtableexam(idint,gradeint);-- 成绩表insertintoexamvalues(1,56),(2,76),(11,8);

查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来:

如果使用普通的内连接:

右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接。

语法:

select字段from表名1rightjoin表名2on连接条件;

示例:

  1. 对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来
  2. 列出部门名称和这些部门的员工信息,同时列出没有员工的部门

OJ

做些简单OJ巩固下:

  1. 分数排名
SELECTS.score,COUNT(DISTINCTT.score)AS'rank'FROMScores SINNERJOINScores TONS.score<=T.scoreGROUPBYS.id,S.scoreORDERBYS.scoreDESC;
  1. 换座位
SELECTt1.id,t2.studentFROMSeat t1JOINSeat t2ONt1.id-1+2*MOD(t1.id,2)=t2.idOR(t1.id=(SELECTMAX(id)FROMSeat)ANDt2.id=t1.idANDMOD(t1.id,2)=1)ORDERBYt1.id;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 2:24:43

Hudi 客户端实现分析

08. Hudi 客户端实现分析 主题说明 Hudi 提供了三种客户端实现&#xff1a;Spark、Flink 和 Java。理解客户端实现有助于理解不同引擎下的写入机制。 客户端实现包括&#xff1a; BaseHoodieWriteClient&#xff1a;客户端基类SparkRDDWriteClient&#xff1a;Spark 客户端Hood…

作者头像 李华
网站建设 2026/3/15 10:20:25

智能体(Agent)何时能可靠完成复杂任务?

智能体&#xff08;Agent&#xff09;可靠完成复杂任务的时间线已随技术突破逐渐清晰&#xff0c;行业头部机构与专家给出了明确预判&#xff1a;短期1-3年可实现结构化场景稳定落地&#xff0c;中期5年内突破跨领域长时程任务能力&#xff0c;长期需依托底层技术迭代实现全场景…

作者头像 李华
网站建设 2026/3/25 6:29:26

Vue3 系列教程(二) 创建第一个 Vue 应用

前言 第1课已完成Vue3开发环境搭建与项目结构认知&#xff0c;本课将聚焦Vue3核心应用的创建流程&#xff0c;掌握createApp函数与mount方法的使用逻辑&#xff0c;理解单文件组件的基础结构&#xff0c;最终实现一个可独立运行的自定义Vue3应用&#xff0c;为后续指令、响应式…

作者头像 李华
网站建设 2026/3/28 1:08:13

如何让AI写的文章摆脱“AI味”

让AI写的文章摆脱“AI味”&#xff0c;核心在于用“人”的真实表达、细节和逻辑&#xff0c;去覆盖AI的模板化输出。本文梳理了一套从思路到实操的完整方法。 &#x1f3ad; 转变写作视角 尝试为AI设定一个更具体的“角色”&#xff0c;而不要让它以默认的、中立的“助手”身份…

作者头像 李华