我正在Hive中的两个表之间尝试一个简单的INNER JOIN。我有一个ORDERS表,另一个是LOG表。这是两者的结构:
ORDERS:
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'都有值,其中一些是null。
我想获得值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地址匹配的代理。
我希望我已经很好地解释了这个问题。有什么想法吗?
答案 0 :(得分:1)
这听起来像是加入的问题。它可能与空值有关。它也可以是表格中的数据。试试这个?
SELECT order.id_producto,order.id_usuario,log.host,log.agent
FROM order
JOIN log ON order.ip=log.host
WHERE order.ip is not null