数据和商业智能术语表

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) 是在关系型数据库中组合两个 的结果。

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

连接的类型

有四种 SQL 连接类型

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

Metabase中的示例连接

Metabase默认在查询构建器中使用左外连接,但在原生SQL查询(即,如果您在查询中仅使用JOIN而不是指定连接类型)中默认使用内连接。

假设我们想在Metabase的示例数据库中返回来自PeopleOrders表的记录,例如一个包含订单ID、下单人的姓名和用户ID的表格。

查询构建器连接

图1显示了在Metabase的笔记本编辑器中此连接的外观。我们还会选择哪些列可见,这样就不会显示两个表中的每个列。

<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处连接,这是一个实体键和外键)。

关键文章

相关术语

进一步阅读