Sql 配置单元:连接表
我刚刚开始学习SQL和Hive。在试图完成一项任务时,面临一个问题 有两个表格:Sql 配置单元:连接表,sql,hive,Sql,Hive,我刚刚开始学习SQL和Hive。在试图完成一项任务时,面临一个问题 有两个表格: db_base.memberdata tb_1 tb_1.mem_id, tb_1.mem_nbr, tb_1.mem_grp, tb_1.mem_ctry, tb_1.mem_email, tb_1.mem_enrldate db_history.memberhdata tb_2 tb_2.mem_id, tb_2.mem_nbr, tb_2.mem_grp, tb_2.mem_stat, t
db_base.memberdata tb_1
tb_1.mem_id,
tb_1.mem_nbr,
tb_1.mem_grp,
tb_1.mem_ctry,
tb_1.mem_email,
tb_1.mem_enrldate
db_history.memberhdata tb_2
tb_2.mem_id,
tb_2.mem_nbr,
tb_2.mem_grp,
tb_2.mem_stat,
tb_2.mem_cd,
tb_2.mem_lvl,
tb_2.mem__stat_desc,
tb_2.mem_enrldate
尝试通过以下方式加入表:
SELECT tb_1.mem_id,tb_1.mem_nbr,tb_1.mem_grp,tb_1.mem_ctry,tb_1.mem_email,tb_1.mem_enrldate
FROM db_base.memberdata tb_1
INNER JOIN
(SELECT
tb_2.mem_id,tb_2.mem_nbr,tb_2.mem_grp,tb_2.mem_stat,tb_2.mem_cd,tb_2.mem_lvl,tb_2.mem__stat_desc,
tb_2.mem_enrldate
FROM db_history.memberhdata tb_2
WHERE
tb_2.mem_enrldate BETWEEN '2018-01-01' AND '2018-06-01'
AND tb_2.mem_id = 4 AND tb_2.mem_nbr = 1
AND tb_2.mem_grp = 1) tb_2a
ON tb_2a.mem_id = tb_1.mem_id
limit 100;
我得到的错误是:
FAILED: ParseException line 9:0 cannot recognize input near 'ON' 'tb_2' '.' in subquery source
尝试在网上查看几个示例,但这里似乎没有任何效果。对不起,我的知识有限。请帮忙
在查询中执行更新后,获取:
FAILED: SemanticException [Error 10002]: Line 13:9 Invalid column reference 'mem_id'
我注意到您正在从每个表中选择all,因此为了简单起见,我只是将其缩短(使用*)
请注意别名AA和BB的位置。来自db_history.memberhdata tb_2是在参数内部定义的。您需要在正确的参数后面添加别名,比如tb_2a,然后使用它alias@donPablo谢谢我按照你的建议做了同样的事情,但是现在得到了一个不同的错误。我已经在上面的主要问题中更新了。我不知道。。。我没有行号,所以我猜第13行是什么——我们需要)作为tb_2a吗——或者你能尝试“双重资格”吗?tb_2a.tb_2.mem_id=tb_1.tb_1.mem_id
SELECT * FROM tb_1 as AA
INNER JOIN
(
select * from tb_2 as Tb_2
WHERE
Tb_2.enrldate between months_between('2018-06-01', '2015-01-01')
AND Tb_2.id=4 AND Tb_2.nbr=1
AND tb_2.grp=1
) as BB
ON AA.id=BB.id
LIMIT 100;