可用版本:开发版3.21)| 最新版 (3.20) | 3.19

显式路径JOIN

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

从 jOOQ 3.19 开始,可以在 FROM 子句中显式地进行路径连接(如隐式路径 JOIN中所介绍的)。

// Path joins are created implicitly:
create.select(
          BOOK.author().FIRST_NAME,
          BOOK.author().LAST_NAME,
          BOOK.TITLE,
          BOOK.language().CD.as("language"))
      .from(BOOK)
      .fetch();

// Path joins are created explicitly (e.g. using table lists):
create.select(
          BOOK.author().FIRST_NAME,
          BOOK.author().LAST_NAME,
          BOOK.TITLE,
          BOOK.language().CD.as("language"))
      .from(BOOK, BOOK.language(), BOOK.author())
      .fetch();

// Path joins are created explicitly (e.g. using inner joins, with optional ON clause):
create.select(
          BOOK.author().FIRST_NAME,
          BOOK.author().LAST_NAME,
          BOOK.TITLE,
          BOOK.language().CD.as("language"))
      .from(BOOK)
      .join(BOOK.language())
      .join(BOOK.author())
      .fetch();

这有几个好处:

  • 可以在每个路径的基础上指定确切的 JOIN 类型,包括更深奥的 JOIN 类型,例如 SEMI JOINANTI JOINAPPLY
  • 它可以提高查询的清晰度。
  • 它允许基于连接路径关联子查询。

将路径表达式放入 FROM 子句的一个特殊情况是隐式路径关联,其中路径建立与外部查询的关联,而不是与 FROM 子句中先前表的连接。

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo