关于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

相关推荐
用户34140819912535 分钟前
Request(下发) 和 Indication(上报) 的完整流程
后端
何中应36 分钟前
使用jvisualvm提示“内存不足”
java·jvm·后端
何中应37 分钟前
如何手动生成一个JVM内存溢出文件
java·jvm·后端
小灵吖39 分钟前
LangChain4j Tool(Function Call)
java·后端
小灵吖43 分钟前
LangChain4j Prompt 提示词工程
java·后端
小邓睡不饱耶2 小时前
Spring Boot 3 + MyBatis-Plus 高性能持久层开发实战:从入门到调优
spring boot·后端·mybatis
无名之逆2 小时前
你可能不需要WebSocket-服务器发送事件的简单力量
java·开发语言·前端·后端·计算机·rust·编程
锅包一切3 小时前
一、C++ 发展与程序创建
开发语言·c++·后端·学习·编程
古城小栈3 小时前
后端视角:拆解春晚背后的高可用技术架构
后端·架构