连接查询:内连接/自连接/左连接/右连接

本文详细介绍了SQL中的四种连接查询:自连接、内连接、左连接和右连接。自连接是同一张表的特殊多表连接,用于处理复杂的数据关系。内连接查询返回两个表中满足特定条件的匹配记录。左连接以左表数据为主,右表数据不匹配时用NULL填充。右连接则反之,以右表为主,左表数据不匹配用NULL填充。

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

1、自连接查询

自连接查询就是一个表和它自身进行连接,是多表连接的特殊情况.
自连接查询就是以类似多表对比的方式,实现对同一张表内数据进行复杂的关系表示或者处理.

例子:
区域表效果图 :中国->省>市->区/镇

例子表格数据
提取码:0000
在这里插入图片描述
分析:在这里插入图片描述

在这里插入图片描述

1 查询省的名称为'山西'的所有城市
select b.title from areas as a inner join areas as b on a.id=b.pid where a.title='山西省';
或者
SELECT a.title from areas as a INNER JOIN areas as b ON a.pid=b.id where b.title='山西省';
2 查询所有省份的信息
select title from areas where areas.pid is null;
3 查询所有省份信息,查询每个省份的城市数量
select a.title,count(*) from areas as a inner join areas as b on a.id=b.pid where a.pid is  null group by a.title;
解释 :
 where a.pid is  null 
 当左表pid为空,也就是说 左边主键为省
 group by a.title
 以左表省 分组

2、内连接查询

查询两个表中符合条件的共有记录
内连接查询效果图:
在这里插入图片描述

语法格式:
select 字段 from1 inner join2 on1.字段1=2.字段2; 

说明:

  • inner join 就是内连接查询关键字
  • on 就是连接查询条件

3、左连接查询

以左表为主根据条件查询右表数据 ,如果根据条件查询右表数据不存在使用null值填充

左连接查询效果图:
在这里插入图片描述

左连接查询语法格式
select 字段 from1 left join2 on1.字段1=2.字段2 

说明:

  • left join 就是左连接查询关键字
  • on 就是连接查询条件
  • 表1 是左表
  • 表2 是右表

4、右连接查询

以右表为主根据条件查询左表数据 ,如果根据条件查询左表数据不存在使用null值填充
右连接查询效果图:

在这里插入图片描述

语法格式:
selcet 字段 from1 right join2 on1.字段=2.字段 

说明:

  • right join 就是右连接查询关键字
  • on 就是连接查询条件
  • 表1 是左表
  • 表2 是右表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值