数据和商业智能术语表

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
W
X

什么是 JOIN?

JOIN 是关系型数据库中,从两个 合并结果的操作。

虽然“JOIN”这个词听起来像是合并表本身,但 JOIN 实际上是从两个(或更多)不同的表中提取 ,并返回一组新的行,这些行组合了这些表的 ,并通过 实体键外键 来确定哪些行是相关的。

JOIN 的类型

SQL JOIN 有四种 类型

  • 左外连接:选择表 A 的所有记录,以及表 B 中符合连接条件的记录(如果有)。
  • 右外连接:选择表 B 的所有记录,以及表 A 中符合连接条件的记录(如果有)。
  • 内连接:仅选择表 A 和表 B 中符合连接条件的记录。
  • 全外连接:选择两个表的所有记录,无论是否满足连接条件。

Metabase 中的 JOIN 示例

在 Metabase 中,当在 查询构建器 中提问时,默认使用左外连接;但对于 原生 SQL 查询(即,如果您在查询中仅使用 `JOIN` 而未指定连接类型),默认是内连接。

假设我们想在 Metabase 的 示例数据库 中,从 `People` 和 `Orders` 表返回结果,例如一个包含订单 ID、下订单的人的姓名以及其用户 ID 的表格。

查询构建器 JOIN

图 1 展示了此 JOIN 在 Metabase 的 笔记本编辑器 中的样子。我们还需要选择哪些列可见,以免显示来自两个表的每一列。

<em>Fig. 1</em>. A join in the query builder.
图 1。查询构建器中的 JOIN。

原生 SQL 查询 JOIN

如果我们用 SQL 编写相同的查询,可能会是这样的:

SELECT
  orders.id AS "Order ID",
  people.name AS "Name",
  people.id AS "User ID"
FROM
  people
JOIN
  orders ON people.id = orders.user_ID

这里我们确定了 JOIN 的位置(在本例中,是在 `People → ID` 和 `Orders → User_ID` 之间进行连接,一个实体键和一个外键)。

核心文章

相关术语

延伸阅读

这有帮助吗?

感谢您的反馈!
© . This site is unofficial and not affiliated with Metabase, Inc.