【发布时间】:2020-01-31 00:02:36
【问题描述】:
请原谅背景故事...我对 SQL 不是很有经验,但我知道的不仅仅是“足以让自己陷入困境”。我所拥有的知识是建立在我使用 MySQL 的经验之上的。我不太幸运的一件事是使用任何join(但我一直在使用我能找到的所有资源来解决这个问题)。开始吧,我试图在两张桌子上做一个join。我正在使用 SQL 工作台。我必须使用的表对我来说似乎有点奇怪,因为根据查询,我可能需要也可能不需要使用“。”调用它时。每当我尝试describe 使用show tables; 找到的任何表时,查询往往会失败,除非我添加“all_tables”。 (不是真名)在它前面。这方面的一个例子是describe all_tables.sub_table_1;。运行实际查询时,只有少数表需要“all_tables”。字首。不幸的是,我需要加入的两个表都需要该前缀。所以考虑到所有这些,我需要对join 这些表做些什么特别的事情吗?到目前为止,我已经尝试过这些事情,但没有任何运气:
select all_tables.sub_table_1.column_1 as "Code",
all_tables.sub_table_2.column_1 as "Name",
count(all_tables.sub_table_1.column_1) as "Count",
all_tables.sub_table_2.column_2 as "Description"
from all_tables.sub_table_1 as errors
left join all_tables.sub_table_2 as codes on errors.column_2=codes.column_3
and errors.column_3= codes.column_4
where errors.column_4 like 'floor_%' and errors.event_timestamp> timestamp '2019-09-30 00:00:00.000' and errors.column_5='9900' group by errors.column_1; ```
“[Teradata]Presto 查询失败:第 1:8 行:列 'all_tables.sub_table_1.column_1' 无法解析。”是输出。
我意识到这可能是一场语义噩梦(很可能也是语法)。我试过删除“all_tables”。前缀,所有as 调用,4x 检查拼写,但查询总是在同一个位置中断。我的错误是简单的,还是这里发生了更复杂的事情?预先感谢您在阅读我的小说后愿意提供帮助。
【问题讨论】:
-
看起来您在表名上使用了别名:
from all_tables.sub_table_1 as errors,因此请尝试选择alias.column_name。例如,您的第一列应如下所示:select errors.column_1