sql left join,right join,inner join,union,union all,outer apply,cross apply
left join:
select * from table1 a left join table2 b on a.id=b.id 查询结果包含table1 全部,table2的id=table1的id部分。如果table2有多条,则table1会重复取值直到table2符合条件值全部取出
right join
select * from table1 a right join table2 b on a.id=b.id 查询结果包含table2 全部,table1的id=table2的id部分。如果table1有多条,则table2会重复取值直到table1符合条件值全部取出
inner join
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号 只返回两表字段相同的字段内容
union all ;union
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; Union All:对两个结果集进行并集操作,包括重复行,不进行排序; 字段类型,字段名均要一致
outer apply ;cross apply
相对left join 与 right join 来说
1) CROSS APPLY 的意思是“交叉应用”,在查询时首先查询左表,然后右表的每一条记录跟左表的当前记录进行匹配。匹配成功则将左表与右表的记录合并为一条记录输出;匹配失败则抛弃左表与右表的记录。(与 INNER JOIN 类似)
2) OUTER APPLY 的意思是“外部应用”,与 CROSS APPLY 的原理一致,只是在匹配失败时,左表与右表也将合并为一条记录输出,不过右表的输出字段为 null。(与 LEFT OUTER JOIN 类似)
https://www.cnblogs.com/abeam/p/7137993.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?