关于SQL的各种Join你知道多少?

SQL中的 join,无外乎 inner join、outer join 以及 cross join,而 inner join 其实就是我们熟知的 join,outer join 其实就是 left outer join、right outer join 和 full outer join。

inner join

通过连接键列中的值进行匹配,仅相同键值的记录在结果集中,两个表中没有匹配的记录不包括在结果集中。

LEFT OUTER JOIN

LEFT OUTER JOIN (或 LEFT JOIN)返回左表中的所有内容,右表中匹配的行以及右表中没有匹配的记录用 NULL 填充。

RIGHT OUTER JOIN

RightOUTERJOIN (或 RightJOIN)返回右表中的所有内容,匹配的行在左表中,坐标中没有匹配的记录填充为 NULL。

FULL OUTER JOIN

在 FULL OUTER JOIN(或 FULL JOIN)中,记录由连接键列中的值进行匹配,相同键值的记录将被匹配,而两个表中不匹配的记录将被填充为 NULL。

CROSS JOIN

CROSS JOIN: 返回表1的每一行和表2的每一行的笛卡儿积,所以如果表1包含6行,表2包含5行,结果将产生30个结果(6 * 5 = 30)

总结

扩展

left anti join 和 right anti join

相关推荐
神奇小汤圆几秒前
面试官:为什么要尽量避免使用 IN 和 NOT IN 呢?
后端
敖正炀2 分钟前
StampedLock 详解
java·后端
han_hanker14 分钟前
Spring Boot 如何读取 application.yml 作为配置
java·spring boot·后端
计算机学姐19 分钟前
基于SpringBoot的充电桩预约管理系统【阶梯电费+个性化推荐+数据可视化】
java·vue.js·spring boot·后端·mysql·信息可视化·mybatis
han_hanker26 分钟前
Spring Boot 配置类注解@Configuration, @Bean
java·spring boot·后端
CodeSheep41 分钟前
宇树科技的最新工资和招人标准
前端·后端·程序员
韩数44 分钟前
为了能同时开发多个项目,我烧了几亿 token 开源了一个轻量级 AI-Native IDE
后端·程序员·github
IT_陈寒1 小时前
Vue的响应式居然在这里埋坑,差点加班到天亮
前端·人工智能·后端
Rust研习社1 小时前
Rust Clone 特征保姆级解读:显式复制到底怎么用?
开发语言·后端·rust
小旭95271 小时前
SpringBoot 项目实战:ECharts 数据可视化 + POI Excel 报表导出完整版教程
java·spring boot·后端·信息可视化·echarts