SemDB 示例教程
数据变换:表格连接

我们接续上一个教程的结果继续操作。

如果一个视图的 from 部分包含两个不同的表格,那么最终结果会包含所有可能的数据对。 如下例所示,我们建立一个连接两个表格的视图:

{
  "select": ["id", "A", "B", "C", "D"],
  "from": ["dir.a", "dir.b"]
}

可以看到最终生成的视图包含了100行数据。

在表格连接的语句中,我们往往需要对每个参与连接的表格建立一个简称,这样可以在表达式中针对性地指示其中一个表格的列,如下例所示:

{
  "select": ["a.id", "b.id", "A", "B", "C", "D"],
  "from": ["dir.a AS a", "dir.b AS b"]
}

最终结果如下:

在表格连接语句中同样可以使用 where 语句,用来对数据对进行筛选,where 的筛选条件作用于各个数据对,如下例所示:

{
  "select": ["a.id", "b.id", "A", "B", "C", "D"],
  "from": ["dir.a AS a", "dir.b AS b"],
  "where": ["A = C"]
}

最终结果如下:

事实上,表格连接的 from 部分可以包含任意多个表格,最终结果会包含所有可能的数据元组。下面展示一个三个表格的表格连接视图。

{
  "select": ["a.id", "b.id", "c.id"],
  "from": ["dir.a AS a", "dir.b AS b", "dir.a AS c"]
}

最终结果如下:

© 2025