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