【发布时间】:2019-05-16 17:54:26
【问题描述】:
实现 JOIN 重写以允许向查询提供子查询结果的正确方法是什么? 例如:
SELECT state FROM zips_view WHERE j IN (select j from people_view)
此查询被重写为 SemiJoin,它执行表扫描内部查询(按预期再次选择 _people_view_),然后再次执行表扫描以进行外部查询(选择 _zips_view_)。第二次扫描可以替换为过滤查询,例如
SELECT state FROM zips_iew WHERE j IN (1,2,3,4)
实现“两阶段”JOIN 的正确方法是什么?它接受子查询的结果并将它们作为过滤器/条件添加到外部查询中?
【问题讨论】:
标签: elasticsearch join apache-calcite