我有table_A:
id var1 var2
1 a b
2 c d
表-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;
我直接从Edward Capriolo等人的编程蜂巢的第112页编码。
我得到的错误,无论我尝试的上述表面上合理的变化,都是“cannot recognize input near '.' 'id' ',' in select expression.
”
我尝试在表名和别名之间使用“as”,星号,因为我想要两个表中的所有内容。同样的错误。我尝试了其他的东西并得到了其他错误......我想做的就是UNION两张桌子。 (我尝试过UNION而不是UNION ALL - 同样的错误)。
答案 0 :(得分:14)
只需用另一个单词替换all。它似乎是一个保留的关键字。 E.g:
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;
答案 1 :(得分:1)
我有类似的查询工作。只需更改表名和列名。试试这个。希望这会对你有所帮助。
create table new_table as
select
distinct
id, name
FROM
table1
union all
select
distinct
id,name
from
table2
;
答案 2 :(得分:0)
尝试一下,它对我有用。
CREATE TABLE combined AS
SELECT id, var1, var2
FROM (
SELECT id, var1, var2
FROM table_A
UNION ALL
SELECT id, var1, var2
from table_B
) a;