连接的表
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
可以在 SQL SELECT 语句 中使用的 JOIN 操作符 是在 SQL 中创建新的表表达式的最强大和支持最好的方法。
本节将解释不同类型的连接
-
CROSS JOIN
: 笛卡尔积 -
INNER JOIN
: 过滤匹配项的笛卡尔积 -
OUTER JOIN
: 过滤匹配项的笛卡尔积,另外生成一些不匹配的行 -
SEMI JOIN
: 检查一个表中是否存在另一个表中的行 (使用EXISTS
或IN
) -
ANTI JOIN
: 检查一个表中是否不存在另一个表中的行 (使用NOT EXISTS
或一些条件NOT IN
)
... 以及形成连接谓词的不同类型
-
ON
: 显式表达连接谓词 -
ON KEY
: 基于FOREIGN KEY
显式或隐式表达连接谓词 -
USING
: 基于两个表中显式共享的列名集隐式表达连接谓词 -
NATURAL
: 基于两个表中隐式共享的列名集隐式表达连接谓词
... 然后,还有其他丰富连接的方法
-
APPLY
或LATERAL
: 从左到右排序连接树,允许右侧访问左侧的行 -
OUTER JOIN
上的PARTITION BY
: 填充使用OUTER JOIN
的报告中的空白
所有这些方法在 jOOQ API 中都可用两次
- 在
org.jooq.Table
API 上,它们形成二元运算符 - 在 SELECT API 上,它们作为 jOOQ 的 DSL 中的便利提供,以驯服括号
目录
- 3.10.3.1.
- CROSS JOIN
- 3.10.3.2.
- INNER JOIN
- 3.10.3.3.
- OUTER JOIN
- 3.10.3.4.
- SEMI JOIN
- 3.10.3.5.
- ANTI JOIN
- 3.10.3.6.
- ON子句
- 3.10.3.7.
- ON KEY子句
- 3.10.3.8.
- USING子句
- 3.10.3.9.
- NATURAL子句
- 3.10.3.10.
- LATERAL
- 3.10.3.11.
- APPLY
- 3.10.3.12.
- PARTITION BY
- 3.10.3.13.
- JOIN提示
- 3.10.3.13.1.
- HASH JOIN
- 3.10.3.13.2.
- LOOP JOIN
- 3.10.3.13.3.
- MERGE JOIN
上一节 : 下一节 |
反馈
您对此页面有任何反馈吗? 我们很乐意听到它!