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;

相关推荐
等....34 分钟前
Minio使用
数据库
win x2 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
迷枫7122 小时前
DM8 数据库安装实战:从零搭建达梦数据库环境(附全套工具链接)
数据库
XDHCOM3 小时前
PostgreSQL 25001: active_sql_transaction 报错原因分析,故障修复步骤详解,远程处理解决方案
数据库·sql·postgresql
卤炖阑尾炎3 小时前
PostgreSQL 日常运维全指南:从基础操作到备份恢复
运维·数据库·postgresql
daad7774 小时前
wifi_note
运维·服务器·数据库
计算机毕设vx_bysj68695 小时前
【免费领源码】77196基于java的手机银行app管理系统的设计与实现 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·mysql·智能手机·课程设计
吴声子夜歌5 小时前
ES6——正则的扩展详解
前端·mysql·es6
xixingzhe25 小时前
Mysql统计空间增量
数据库·mysql
程序员萌萌5 小时前
Java之mysql实战讲解(三):聚簇索引与非聚簇索引
java·mysql·聚簇索引