google-bigquery - bigquery MERGE DML 与相关子查询
问题描述
是否可以在 bigQuery 中使用 MERGE DML 进行相关查询(MERGE 中的 WHEN 子句之一内的子查询)?
例如,请参阅我在谷歌搜索“源删除时不匹配时合并”的改编查询。注意 WHEN 子句中的两个 SELECTS:
MERGE Target1 AS T
USING Source1 AS S
ON (T.label_id = S.label_id)
WHEN NOT MATCHED BY TARGET AND S.project_name IN (SELECT DISTINCT(project_name) FROM Source1)
THEN INSERT(attr1, attr2) VALUES(S.attr1, S.attr2)
WHEN MATCHED
THEN UPDATE SET T.attr1 = S.attr1
WHEN NOT MATCHED BY SOURCE AND T.project_name IN (SELECT DISTINCT(project_name) FROM Source1)
THEN DELETE ;
如何在 bigQuery 中做到这一点?它需要从我上面的查询中修改吗?我目前得到一个:
Correlated subquery is unsupported in WHEN clause.
解决方案
遗憾的是, BigQuery中的 MERGE 语句不支持WHEN 子句中的子查询。
推荐阅读
- java - java Dijkstra的最短路径如何确定最终目的地?
- android - SQLite 数据库到具有多个元素的 CustomListview
- php - 替换/装饰`translation.reader`
- android - Android - 列表未绑定到 RecyclerView MvvmCross
- hibernate - HQL 在 OneToOne 关系中检查 NULL
- python - 在 Python 中创建一个类作为另一个类的池
- python - Python:使用计时器终止循环
- jquery - 如何查询选择另一个 Lit-Element 中的 Lit-Element
- angular - ngClass 指令中的变量值 - Angular 5
- qt - 部署 Qt Windows 应用程序