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;

相关推荐
gjc5925 分钟前
踩坑实录:MySQL服务器CPU爆高,元凶竟是SELinux的setroubleshootd?
运维·服务器·数据库·mysql·adb
2401_846341658 分钟前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
2401_8796938710 分钟前
进阶技巧与底层原理
jvm·数据库·python
知识分享小能手12 分钟前
Redis入门学习教程,从入门到精通, Redis Stack 完整语法知识点及使用指南(7)
数据库·redis·学习
小仓桑18 分钟前
【Agent智能体项目实战三】LangChain调用通义千问保姆级教程
数据库·阿里云·langchain·agent
GIS阵地24 分钟前
QgsDataSourceUri解析
数据库·c++·qt·开源软件·qgis
yunyun3212334 分钟前
自动化与脚本
jvm·数据库·python
暮冬-  Gentle°35 分钟前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
setmoon21435 分钟前
构建一个基于命令行的待办事项应用
jvm·数据库·python
IndulgeCui1 小时前
金仓数据库(KINGBASEES)敏感数据物理级销毁功能:配置、实操与验证全指南
数据库