MySQL内外连接

MySQL内外连接

  • 表的连接分为内连接和外连接

内连接

  • 内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选,也是开发中使用最多的连接查询

语法:

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

​ 就是使用inner join table_2 on someting代替了原来的条件

外连接

  • 外连接分为左外连接和右外连接

左外连接

  • 使用左外连接,就是说左边的内容会被完全显示,但是右边的如果有匹配的就显示,如果没有匹配的就显示为NULL

语法:

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

eg:

sql 复制代码
-- 建两张表
create table stu (id int, name varchar(30)); -- 学生表
insert into stu values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');
create table exam (id int, grade int); -- 成绩表
insert into exam values(1, 56),(2,76),(11, 8);

-- 查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来
-- 当左边表和右边表没有匹配时,也会显示左边表的数据
select * from stu left join exam on stu.id=exam.id; 

右外连接

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

eg:

sql 复制代码
-- 对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来
select * from stu right join exam on stu.id=exam.id;

​ 其实右连接也可以使用左连接来实现,就是要换一下两个表的位置即可

相关推荐
heartbeat..3 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据5 小时前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦6 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
myzshare7 小时前
实战分享:我是如何用SSM框架开发出一个完整项目的
java·mysql·spring cloud·微信小程序
YMatrix 官方技术社区7 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录8 小时前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong8 小时前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
墨笔之风9 小时前
java后端根据双数据源进行不同的接口查询
java·开发语言·mysql·postgres
欧亚学术9 小时前
突发!刚刚新增17本期刊被剔除!
数据库·论文·sci·期刊·博士·scopus·发表
黑白极客9 小时前
怎么给字符串字段加索引?日志系统 一条更新语句是怎么执行的
java·数据库·sql·mysql·引擎