2012-12-31 4 views
9

У меня есть TABLE_A:HiveQL UNION ALL

id var1 var2 
1 a b 
2 c d 

TABLE_B:

id var1 var2 
3 e f 
4 g h 

Все, что я хочу, это таблица, в сочетании:

id var1 var2 
1 a b 
2 c d 
3 e f 
4 g h 

Это мой .hql:

CREATE TABLE combined AS 
SELECT all.id, all.var1, all.var2 
FROM (
    SELECT a.id, a.var1, a.var2 
    FROM table_A a 
    UNION ALL 
    SELECT b.id, b.var1, b.var2 
    from table_B b 
) all; 

Я кодирую прямо со страницы 112 «Программирующего улья» Эдварда Каприоло и др.

ошибка, я получаю, независимо от того, что якобы разумного варианта вышесказанного, я стараюсь, это «cannot recognize input near '.' 'id' ',' in select expression.»

Я попытался с помощью «как» между именем таблицы и псевдонимом, звездочки, так как я хочу, чтобы все из обеих таблиц. Такая же ошибка. Я пробовал другие вещи и получал другие ошибки ... Все, что я хочу сделать, это UNION две таблицы. (Я пытался использовать UNION вместо UNION ALL - ту же ошибку).

ответ

10

Просто замените все на другое слово. Кажется, это зарезервированное ключевое слово. Например:

CREATE TABLE combined AS 
SELECT unioned.id, unioned.var1, unioned.var2 
FROM (
    SELECT a.id, a.var1, a.var2 
    FROM table_A a 
    UNION ALL 
    SELECT b.id, b.var1, b.var2 
    from table_B b 
) unioned; 
0

У меня есть аналогичный запрос. Просто измените имена таблиц и столбцов. Попробуй это. Надеюсь, это поможет вам.

create table new_table as 
select 
distinct 
id, name 
FROM 
table1 
union all 
select 
distinct 
id,name 
from 
table2 
;