MySQL表的内外连接

内连接

内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选,前面所说过的查询都是内连接,也是在开发过程中使用的最多的连接查询。

sql 复制代码
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;

inner join : 将两个表按照指定条件关联匹配,只返回两个表中满足连接条件的行。可简写为join

on : 用来指定join的关联条件为连接两个表的核心规则,也可附加筛选条件

显示SMITH的名字和部门名称

用上一篇的写法为

内连接的写法为

sql 复制代码
select ename,dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno where ename='SMITH';

select ename,dname from EMP inner join DEPT on EMP.deptno=DEPT.deptno and ename='SMITH';

on后的条件形成笛卡尔积,where进一步筛选 这种写法会更清晰

外连接

左外连接

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

语法

sql 复制代码
select 字段名  from 表名1 left join 表名2 on 连接条件

四名同学,两名同学有成绩,left join 会优先考虑完整显示左侧的表,inner

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

右外连接

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

语法

sql 复制代码
select 字段 from 表名1 right join 表名2  on 连接条件;

显示所有成绩即使没有学生与之对应

将两个表互换位置就是左外连接,显示所有学生的成绩...

列出部门名称和这些部门的员工信息,同时列出没有员工的部门

优先显示部门表,根据 deptno来筛选

select * from DEPT left join EMP on EMP.deptno=DEPT.deptno;

相关推荐
IT19953 小时前
Fail2Ban 防护 MySQL 实战|登录失败 3 次,IP 封禁 24 小时
数据库·mysql
夕除3 小时前
redis--IO 多路复用(select + poll)
数据库·sql
paopaokaka_luck5 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
lzhdim7 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis
天河归来7 小时前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
数据库小学妹7 小时前
金融数据库成本怎么算?五笔钱加一张TCO表
数据库·金融行业·数据库选型·国产化替代·tco·金融数据库
KaiwuDB7 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
auspicious航7 小时前
PostgreSQL的备份与恢复
数据库·postgresql
这个DBA有点耶8 小时前
从 MySQL 到时序数据库:我帮朋友做迁移的完整记录
数据库·架构·dba
泡海椒8 小时前
深度解析JQuick-SQL AST到逻辑计划转换机制|分布式SQL原理
数据库·分布式·sql