簡體   English   中英

用多個“.”連接在表格中

[英]Joins with multiple “.” in tables

請原諒背景故事...我對 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' 無法解析。” 是 output。

我意識到這可能是一場語義噩夢(很可能也是語法)。 我試過刪除“all_tables”。 前綴、所有as調用和 4x 檢查拼寫,但查詢總是在同一個位置中斷。 我的錯誤是簡單的,還是這里發生了更復雜的事情? 預先感謝您在閱讀我的小說后願意提供幫助。

您已經為表定義了別名。 您需要為所有引用使用別名:

select errors.column_1 as "Code", codes.column_1 as "Name",
       count(errors.column_1) as "Count",
       codes.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, codes.column_1, codes.column_2

請在下面嘗試,聚合問題也應該得到解決。

select errors.column_1 as "Code",
codes.column_1 as "Name",
codes.column_2 as "Description",
count(errors.column_1) as "Count"
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,codes.column_1,codes.column_2; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM