数据和商业智能词汇表

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

加入

什么是连接 (join)?

连接 是将 格在 关系数据库 中的结果组合起来。

虽然 “连接” 这个词听起来像是要合并表格本身,但连接实际上是从两个(或更多)不同的表格中获取 ,并返回一个新的行集合,该集合结合了来自这些表格的 ,使用 实体键外键 来确定哪些行是相关的。

连接的类型

共有四种 SQL 连接类型

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

Metabase 中的连接示例

对于在查询构建器中提出的问题,Metabase 默认使用左外连接,但对于原生 SQL 查询,内连接是默认设置(也就是说,如果您在查询中仅使用 JOIN 而不指定连接类型)。

假设我们想从 Metabase 的 示例数据库中的 PeopleOrders 表格中返回结果,例如包含订单 ID、下订单的人员姓名及其用户 ID 的表格。

查询构建器连接

图 1 显示了在 Metabase 的 notebook 编辑器中,此连接的外观。我们还需要选择要显示的列,这样就不会显示两个表格中的每一列。

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

原生 SQL 查询连接

如果我们要用 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

在这里,我们已经确定了连接发生的位置(在本例中,在 People → IDOrders → User_ID(实体键和外键)处进行连接)。

重点文章

相关术语

延伸阅读