可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

连接的表

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

可以在 SQL SELECT 语句 中使用的 JOIN 操作符 是在 SQL 中创建新的表表达式的最强大和支持最好的方法。

本节将解释不同类型的连接

  • CROSS JOIN: 笛卡尔积
  • INNER JOIN: 过滤匹配项的笛卡尔积
  • OUTER JOIN: 过滤匹配项的笛卡尔积,另外生成一些不匹配的行
  • SEMI JOIN: 检查一个表中是否存在另一个表中的行 (使用 EXISTSIN)
  • ANTI JOIN: 检查一个表中是否不存在另一个表中的行 (使用 NOT EXISTS 或一些条件 NOT IN)

... 以及形成连接谓词的不同类型

  • ON: 显式表达连接谓词
  • ON KEY: 基于 FOREIGN KEY 显式或隐式表达连接谓词
  • USING: 基于两个表中显式共享的列名集隐式表达连接谓词
  • NATURAL: 基于两个表中隐式共享的列名集隐式表达连接谓词

... 然后,还有其他丰富连接的方法

  • APPLYLATERAL: 从左到右排序连接树,允许右侧访问左侧的行
  • 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

上一节 : 下一节

反馈

您对此页面有任何反馈吗? 我们很乐意听到它!

The jOOQ Logo