2017-01-27 82 views
1

我正在編寫一個配置單元查詢來加入兩個表; table1和table2。在結果中,我只需要table1中的所有列和table2中的任何列。Hive加入查詢以僅列出來自一個表的列

我知道解決方案,我可以通過在select語句中指定table1.column1,table1.column2等手動選擇所有列。但是我在表1中有大約22列。另外,我必須爲其他多個表和其痛苦的過程執行相同的操作。

我試過使用「SELECT table1。*」,但我得到一個解析異常。

有沒有更好的方法來做到這一點?

+0

你能幫助我嗎?你說你加入兩個表table1和table2,然後你說你想要table1中的所有列和table2中沒有列。 那麼你爲什麼加入? –

+0

可能是我很困惑,但你能幫我理解你的問題嗎? –

+1

你應該可以做一個table1。*,你可以提供堆棧嗎? – hlagos

回答

0

蜂巢0.13起以下查詢語法的工作原理:

SELECT a.* FROM a JOIN b ON (a.id = b.id)

該查詢將從選擇所有列。因此,而不是鍵入所有的列名(使查詢繁瑣),使用tablealias是一個更好的主意。*

+0

儘管這可能是解決方案,但最好詳細解釋爲什麼這會起作用並解決問題,並且可能會舉一個例子,以便將來遇到此答案的讀者完全知道它的作用。 –

+0

原始問題指向解析「SELECT table1。*」中的異常,但我得到一個解析異常。 這可能是由於使用低於0.13的以前的蜂巢版本 –

相關問題