1
Select t.id, sa.APPLICATION_ID, c.CODE_SID  
from table1 t 
join table2 c 
on c.ID = t.COSTTYPE 
and  c.TYPE_LIST_ID 
IN (Select typel.TYPE_LIST_ID 
     from table3 typel
     where typel.TYPELIST_TABLE_NAME = 'a' )
join table4 tl 
    on t.id = tl.id 
join table5 sa 
where sa.sourcename='GW' and sa.SYSTEM_APPLICATION_SHORT_NAME = 'B'

我正在尝试在 Hive 中执行此操作,但我收到错误消息说 SemanticException IN 遇到 0 个孩子。所以问题出在IN(选择.......)。有没有其他方法可以在不使用 IN 子句的情况下编写查询?提前感谢您的帮助

4

1 回答 1

1

我认为您的 IN 子句的问题是它在您的 WHERE 子句之外说明?尝试将该部分移动到您的 WHERE 子句中,如下所示:

Select t.id, sa.APPLICATION_ID, c.CODE_SID  
from table1 t 
join table2 c 
on c.ID = t.COSTTYPE 
join table4 tl 
    on t.id = tl.id 
join table5 sa 
where sa.sourcename='GW' and sa.SYSTEM_APPLICATION_SHORT_NAME = 'B'
and  c.TYPE_LIST_ID 
IN (Select typel.TYPE_LIST_ID 
     from table3 typel
     where typel.TYPELIST_TABLE_NAME = 'a' )
于 2019-03-27T14:23:48.423 回答