数据变换:表格连接
我们接续上一个教程的结果继续操作。
如果一个视图的 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"]
}
最终结果如下: