表连接就是将两张表"合并"成一张表
tbl1:
1. 张三 1
2. 李四 2
3. 王五 null
tbl2:
1.男
2.女
一. 交叉连接(cross join)--笛卡尔积(叉积)
将第一张表的每一条记录依次与第二张表的每一条记录进行组合,得到一张新表
交叉连接的结果为:
1. 张三 1 1.男
1. 张三 1 2.男
2. 李四 2 2.女
2. 李四 2 1.女
3. 王五 null 1.男
3. 王五 null 2.女
语法:
select t1.*,t2.* from 表1 as t1 cross join 表2 as t2
二.内连接(inner join … on)
-> 交叉连接后数据有大部分是无用的,需要对其进行一个筛选
-> 可以将内连接理解为在交叉连接的基础之上进行一个筛选
内连接的结果为 :
1.张三 1 1.男
2.李四 2 2.女
语法:
select t1.*,t2.* from 表1 as t1 inner join 表2 as t2 on t1.字段 = t2.字段;
三.外连接(left join … on 和 right join … on)
1.左外连接
-> 内连接可以将两张表合并,同时进行筛选,但是有些数据不符合筛选条件,却应该留下来
-> 可以将左外连接理解为将内连接筛选掉的数据再重新插回结果中
左外连接的结果为:
1.张三 1 1 男
2.李四 2 2 女
3.王五 null null null
-> 连接的SQL语句一定是关于两张表的,需要补回的数据以左表为准即,将左表被筛选掉的数据重新插回结果中
-> 语法
select * from 左表 as t1 left join 右表 as t2 on t1.字段 = t2.字段;
2.右外连接
四.多表连接
这三个基本的连接都写在from子句后面,并且作为一个数据源进行使用
t1 cross join t2 cross join t3
t1 inner join t2 on t1.字段 = t2.字段 inner join t3 on t1.字段 = t3.字段
t1 left join t2 on t1.字段 = t2.字段 left join t3 on t1.字段 = t3.字段
五.内连接和外连接的区别
分类:
SQLSERVER
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)