mysql数据查询之连接查询

本文详细介绍了SQL中的连接查询,包括交叉连接、内连接、外连接和自然连接等不同类型的连接方式,并提供了具体的语法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连接查询概念:
将多张表(大于等于 2 张表)按照某个指定的条件进行数据的拼接,其最终结果记录数可能有变化,但字段数一定会增加。



(1)交叉连接
最后得到的结果是拼在一起的,所谓的笛卡尔积的形式,这个没什么用
select * from student cross join class;



(2)内连接 : 从左表中取出每条数据,和右表中的所有数据进行匹配,当左表和右表的值相同时,结果才保留

select * from student inner join class on student.grade = class .grade;



(3)外连接:left以左边为主表,right以右边为主表,主表完整显示,另一张表匹配不成功则显示为null
左表 + left\right + join + 右表 + on + 左表.字段 = 右表.字段;
select s.*, c.id as c_id , c.grade as c_grade ,room from student as s left join class as c on s.grade = c.grade;
注:as 是取别名



(4)自然连接:自动匹配连接条件,系统以两表中同名字段作为匹配条件,分为自然内连接,和自然外连接

A:自然内连接,自动使用同名字段作为连接条件,而且在连接完成之后合并同名字段
select * from student natural join class;

B:自然外连接
select * from student natural left join class;

C:实际上,自然连接并不常用,咱们可使用内连接和外连接来模拟,模拟的关键在于使用同名字段作为连接条件及合并同名字段
select * from student left join class using (id,grade);

using内的字段名是作为连接条件的字段,也是需要合并的同名字段


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值