当前位置: 首页 > news >正文

SQL笔记——左连接、右连接、内连接

前言:总是忘记表连接的区别,在面试的时候也容易被问到,因此就好记性不如烂笔头吧

集合运算

有并集、交集、差集
联合查询*(针对行合并的)*
union为关键字,就是将两个select的结果求并集(此时重复的只出现一次,要是想把重复的也都展示出来 应该用 union all)
ps:以上这些是用行进行计算的,而下面的内连接和外连接是用列进行计算的

内连接

只会现实关键字所在的共有的行,各自的独特的行没有,
假如实现a表和b表通过关键字sid来链接起来
a中sid是1~5,b中sid是2-8,那么结果中sid只有2-5.

select * from a #展示的是a表中的全部
inner join b
on a.sid=b.sid;
###如果结果只展示a中的sid、sex、name列,一定要使用“表名++列名”格式,
###如果加上别名,用as,同时还使用where函数则为
select a.sid,a.sex,a.name from a as staff
inner join b as market
on a.sid=b.sid
where b.age>20;

由于内连接会忽略一些结果,但是实际中可能想展示a中的所有sid或者b中的所有sid,则需要其他连接方式,如左外连接or右外连接

外连接

1.左外连接

结果以左表a中为准,sid就是1-5啦,可能1中有些内容是空白,因为b中没有sid=1的内容

select * from a 
left outer join b
on a.sid=b.sid;

2.右外连接

结果以左表b中为准,sid就是2-8啦,可能5-8中有些内容是空白,因为a中没有sid=6到8的内容

select * from a 
right outer join b
on a.sid=b.sid;

3.完全连接

就是左连接union有链接,把a和b中全部的展示,有点像就并集

select * from a
right outer join b
on a.sid=b.sid;
union
select * from a
left outer join b
on a.sid=b.sid;

笛卡尔积

也称交叉连接,有点像排列组合的感觉
像a中有1-3,b中有ijk,
则结果就是1i、1j、1k、2i、2j、2k、3i以此类推

1.笛卡尔积连接

select 列名
from a,b;
或者是
select 列名
from a cross join b;

2.自连接

就是自己连接自己,但是的区分,用as来重命名

select 列名
from a as a1,a as a2;

一个例子,自连接实现排序

select a.name,a.age,count(*) as 排名
from a as a1,a as a2
where a1.age<=a2.age
group by a1.sid
order by 排名;
http://www.dtcms.com/a/169903.html

相关文章:

  • pip命令
  • #Paper Reading# DeepSeek-R1
  • 在 Trae CN IDE 中配置 Python 3.11的指南
  • 修改ollama.service都可以实现什么?
  • 【网络编程】HTTP(超文本传输协议)详解
  • 头歌数据库课程实验(索引与数据库完整性)
  • 计算方法实验五 插值多项式的求法
  • AI超级智能体教程(五)---自定义advisor扩展+结构化json输出
  • FreeRtos实战从入门到精通--任务创建和删除(动态方法)--事了拂衣去,深藏功与名
  • 先知AIGC超级工场,撬动运营效率新杠杆
  • ASP.NET MVC​ 入门与提高指南八
  • (超2万字数详解)C++学习之类与对象
  • D. 例题3.2.2 整数划分问题
  • python进阶(2)二进制
  • 【分享】Winlator 10.0[特殊字符]虚拟电脑 可玩游戏办公[特殊字符]
  • mvvm 如何 实现 MultiBinding 与转换器
  • 数据结构*队列
  • python下载
  • Java从入门到精通 - Java语法
  • DeepSeek与MySQL:开启数据智能新时代
  • mysql 云服务远程linux创建数据库
  • 阿里巴巴Qwen团队发布了新一代多模态模型Qwen2.5-Omni-3B
  • Easy云盘总结篇-登录注册
  • 二种MVCC对比分析
  • MyBatis的工作原理
  • 构建高效老年基础护理实训室,培养专业护理人才
  • Servlet+tomcat
  • LeetCode —— 145. 二叉树的后序遍历
  • 基于「骑手外卖系统」串联7大设计原则
  • excel中图下标不按设定的位置留空间