Hive加入多个表和where语句

时间:2015-11-14 22:09:50

标签: mysql database hadoop hive

所以我对数据库做了很多事情,所以这可能很容易;但是,如果有人可以帮我这么做的话,我会觉得它(实际上和我自己的知识都很有用)。

设置:有3个表格如下;

表1:userToPizza

col1 =用户(bigint)col2 =披萨(bigint)

表2:pizzaConversion

col1 = pizza(bigint)col2 = oven_loc(类型中的字符串,但生命中的int)

表3:ovenToFire

col1 = oven_loc(一个bigint)col2 = fire_loc(一个bigint)

现在我要做的是如下:

  1. SELECT pizza FROM userToPIzza WHERE user = 1

  2. 在我拥有所有这些比萨饼之后,我想做一个SELECT oven_loc FROM pizzaConversion WHERE pizza = {我刚刚拿到的那些比萨饼}

  3. 基本上在最后一个表上执行与上面相同的步骤,即:SELECT fire_loc FORM ovenToFire WHERE oven_loc = cast({我刚刚得到的所有烤箱}为bigint)

  4. 谢谢。对不起,如果这很容易:(但我真的很感激一些帮助。另外,ps我很确定实际上这样查询我需要使用JOINs,但我不确定该怎么做 - 所以希望如此以上是足够清楚的。

1 个答案:

答案 0 :(得分:1)

希望以下查询能为您提供帮助。

Query-1解决方案:

SELECT userToPIzza.pizza FROM userToPIzza WHERE userToPIzza.user = 1

Query-2解决方案:

SELECT pizzaConversion.oven_loc FROM userToPIzza JOIN pizzaConversion ON(userToPIzza.pizza = pizzaConversion.pizza)WHERE userToPIzza.user = 1

Query-3解决方案:

SELECT ovenToFire.fire_loc FROM userToPIzza JOIN pizzaConversion ON(userToPIzza.pizza = pizzaConversion.pizza)JOIN ovenToFire ON(ovenToFire.oven_loc = pizzaConversion.oven_loc)WHERE userToPIzza.user = 1