首页 > 解决方案 > HIVE 中的子查询

问题描述

我在 HIVE 中有这个嵌套的子查询。当我执行 1 个子查询时,我的结果返回正常。但是,当我尝试添加第二个子查询时,我收到以下错误。

准备错误:org.apache.hive.service.cli.HiveSQLException:编译语句时出错:FAILED:ParseException line 1:861 mismatched input '.' 期望)在子查询源中的“Subquery_1”附近

下面是我试图实现的嵌套子查询。在标准 SQL 中镜像此查询可以正常工作。但我对 HQL 不是很熟悉,也不确定从哪里开始。

    LEFT OUTER JOIN
(SELECT  smz_au.mid,  
         smz_au.oid,  
         Subquery_1.oc
         Subquery_1.ri, 
         Subquery_1.riil,  
         Subquery_1.rrc
  FROM 
        smz_au
        LEFT OUTER JOIN
        (SELECT smz_au_1.oid
                smz_au_1.oc,
                smz_au_1.ri,
                smz_au_1.riil,
                smz_au_1.rrc
           FROM smz_au smz_au_1 
          WHERE (smz_au_1.initial_status = 'Allocated')
         ) Subquery_1 ON (smz_au.oid = Subquery_1.oid) 
  WHERE (smz_au.initial_status = 'Loan Start')
) Subquery ON (smz_ls.mid = Subquery.mid)

标签: hivesubqueryhiveql

解决方案


Subquery_1.oc在选择之前缺少逗号Subquery_1.ri,

     Subquery_1.oc --whithout comma here, Subquery_1.ri is an alias of Subquery_1.oc column
     Subquery_1.ri, --and alias should be without dot '.'
                    --this is why you got " mismatched input '.' " 

推荐阅读