2017-06-01 516 views
1

我將tbl_A上的tbl_B添加到tbl_B上的tbl_B列CustomerID中的tbl_B到包含客戶ID的tbl_B中的Output列上。但是,表B在相關行中包含了所有其他信息,我不想在加入時丟失這些信息。我試圖加入使用像,但我失去了輸出列中不包含ID的行。 enter image description hereenter image description here使用LIKE連接Hive中的表

這是我在蜂巢連接查詢:

select a.*, b.Output from tbl_A a 
left join tbl_B b 
On b.Output like concat('%', a.CustomerID, '%') 

不過,我失去了從輸出其他行。

謝謝。

+1

有趣。你聲稱這段代碼執行時沒有錯誤? –

+0

請閱讀並在[mcve]上採取行動。 PS如果你想要從b的所有行,你需要b左連接a或右連接b。 – philipxy

+0

如果你能夠運行這個沒有錯誤,你可以分享你的Hive版本嗎?據我所知,Hive只允許equi連接,換句話說,它不允許連接短語的形式爲'ON b.Output like concat('%',a.CustomerID,'%')'。看到這個:https://stackoverflow.com/a/25850819/1434041 – r2d2oid

回答

1

我會建議首先從自由浮動字段中提取所有ID,在您的情況下是表B中的'輸出'列到單獨的表中。然後再次將此表與ID再次連接到表B,以便在每行中填入ID,然後將此第二個加入的表(其ID爲表B的表B)填入表A.

希望這有所幫助。

+0

謝謝! @Lilu – Julie