数据与商业智能词汇表术语

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

什么是联接?

一个联接是关系数据库中两个结果的组合。

虽然“联接”这个词听起来像是您正在合并表本身,但联接实际上是获取两个(或更多)不同表的,并返回一组新的行,这些行组合了这些表的,同时使用实体键外键来确定哪些行是相关的。

联接类型

SQL 联接有四种类型

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

Metabase 中的联接示例

查询构建器中提出的问题,Metabase 默认使用左外联接,但对于原生 SQL 查询(即,如果您的查询中只使用 JOIN 而未指定联接类型),则内联接是默认的。

假设我们想从 Metabase 的示例数据库中的 People 表和 Orders 表中返回结果,例如一个包含订单 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 进行联接,它们分别是实体键和外键)。

重点文章

相关术语

延伸阅读

© . All rights reserved.