【发布时间】:2015-06-20 13:54:37
【问题描述】:
我继承了一些带有以下 sn-p 的遗留 SQL 代码(为简单起见,我已匿名)。
CREATE EXTERNAL TABLE dim_abc (user_id int)
CREATE TABLE dim_foo AS
SELECT user_id,
...
FROM my_table a
JOIN (SELECT * FROM dim_abc) b
ON (a.user_id = b.user_id)
而不是...
FROM my_table a
JOIN dim_abc b
ON (a.user_id = b.user_id)
知道为什么以前的开发人员会在 JOIN 中执行 SELECT 吗?
** 代码是 Hive。
【问题讨论】:
-
看看这两个语句的区别。他们会生成不同的表格吗?只有我能想到的是,子选择可能会抑制开发人员不想在新表中继承的表定义的参数
-
省略号有点混淆。很难判断它们是否在进行递归,或者它们是否是由省略号分隔的两个不同的语句。你能发布整个代码吗?
-
您使用的是哪个 DBMS?甲骨文?
-
a_horse_with_no_name - 这是 Hive。