1
我在Hive中的兩個表之間嘗試一個簡單的INNER JOIN。我有一個ORDERS表,另一個是LOG表。這是兩者的結構:HiveQL INNER JOIN
訂單:
id_operacion string
fecha string
id_usuario string
id_producto string
unidades int
id_bono string
precio float
precio_total float
ip string
日誌:
host STRING
identity STRING
user STRING
time STRING
request STRING
status STRING
size STRING
referer STRING
agent STRING
不是在順序表中的所有 'IP' 有一個值,其中一些是空。我想獲取值order.id_usuario,order.id_producto,logs.host,logs.agent
。在order.ip = log.host的情況下。
我想這個查詢:
SELECT order.id_producto,order.id_usuario,log.host,log.agent
FROM order JOIN log ON order.ip=log.host;
我不知道爲什麼,但查詢響應我所有代理日誌的表有,而且不僅與該IP匹配的那些兩個表的地址。
我希望我已經解釋了這個問題。有任何想法嗎?
謝謝你的回覆。我發現了一種解決問題的方法,如果我通過所有我想要選擇的值進行組合,則它會正確響應。我真的不明白爲什麼我必須這樣做......我認爲加入條件就足夠了。 – JayMash
如果你不得不按所有選擇條件進行分組,它通常意味着你加入的兩張桌子有着不同的關係。即一個訂單有一行,另一個訂單有多個行。 – sarin