【发布时间】:2020-04-19 12:17:38
【问题描述】:
一些背景—— 我有两张桌子 一张表列出系统中的所有实体, 另一个指定实体之间的关系
问—— 问题是查看表格,我们能否绘制出每个子实体与父实体的关系。
-- 我做了什么
CREATE TEMP TABLE rell AS
SELECT 3 child_id, 2 parent_id UNION ALL
SELECT 2, 1 UNION ALL
SELECT 4, 1 UNION ALL
SELECT 6, 2 UNION ALL
SELECT 14, 6 UNION ALL
SELECT 15, 14 UNION ALL
SELECT 7, 8 UNION ALL
SELECT 8, 5 UNION ALL
SELECT 9, 10 UNION ALL
SELECT 11, 12 ;
CREATE TEMP TABLE mapp AS
SELECT 1 item_id, 'app' type UNION ALL
SELECT 2 , 'ci' UNION ALL
SELECT 3 , 'ci' UNION ALL
SELECT 4 , 'ci' UNION ALL
SELECT 5 , 'app' UNION ALL
SELECT 6 , 'ci' UNION ALL
SELECT 7 , 'ci' UNION ALL
SELECT 8 , 'ci' UNION ALL
SELECT 9 , 'app' UNION ALL
SELECT 10 , 'ci' UNION ALL
SELECT 11 , 'ci' UNION ALL
SELECT 14 , 'ci' UNION ALL
SELECT 15 , 'ci' UNION ALL
SELECT 12 , 'ci' ;
上面列出的“mapp”包含所有实体(type - app 是最终父级),rel 表包含关系。
我可以有类似下面的输出吗
original_child final_parent path
4 1 4>1
3 1 3>2>1
7 5 7>8>5
14 1 14>6>2>1
15 1 15>14>6>2>1
11 12 11>12
2 1 2>1
8 5 8>5
6 1 6>2>1
【问题讨论】:
-
BigQuery 不支持递归 CTE 或分层查询。您可以使用脚本而不是单个查询来执行此操作。
-
我刚刚在这里回答了一个非常相似的问题stackoverflow.com/questions/61234264/…
标签: sql google-bigquery parent-child parent relation