Presto 支持哪些 JOIN 类型?

· 约 3 分钟读完 · 第 55 / 126 章

推荐答案

Presto 支持以下几种 JOIN 类型:

  1. INNER JOIN:返回两个表中满足连接条件的记录。
  2. LEFT JOIN(或 LEFT OUTER JOIN):返回左表中的所有记录,以及右表中满足连接条件的记录。如果右表中没有匹配的记录,则返回 NULL。
  3. RIGHT JOIN(或 RIGHT OUTER JOIN):返回右表中的所有记录,以及左表中满足连接条件的记录。如果左表中没有匹配的记录,则返回 NULL。
  4. FULL JOIN(或 FULL OUTER JOIN):返回左表和右表中的所有记录。如果某一边没有匹配的记录,则返回 NULL。
  5. CROSS JOIN:返回两个表的笛卡尔积,即左表中的每一行与右表中的每一行组合。
  6. NATURAL JOIN:根据两个表中具有相同名称的列自动进行连接。

本题详细解读

INNER JOIN

INNER JOIN 是最常用的 JOIN 类型之一。它只返回两个表中满足连接条件的记录。如果左表或右表中没有匹配的记录,则这些记录不会出现在结果集中。

LEFT JOIN

LEFT JOIN 返回左表中的所有记录,即使右表中没有匹配的记录。如果右表中没有匹配的记录,则结果集中右表的列将包含 NULL 值。

RIGHT JOIN

RIGHT JOIN 与 LEFT JOIN 类似,但它返回右表中的所有记录,即使左表中没有匹配的记录。如果左表中没有匹配的记录,则结果集中左表的列将包含 NULL 值。

FULL JOIN

FULL JOIN 返回左表和右表中的所有记录。如果某一边没有匹配的记录,则结果集中对应的列将包含 NULL 值。

CROSS JOIN

CROSS JOIN 返回两个表的笛卡尔积,即左表中的每一行与右表中的每一行组合。这种 JOIN 类型通常用于生成所有可能的组合。

NATURAL JOIN

NATURAL JOIN 根据两个表中具有相同名称的列自动进行连接。它不需要显式指定连接条件。

这些 JOIN 类型在 Presto 中都可以使用,具体选择哪种 JOIN 类型取决于你的查询需求。