Sql 配置单元错误:对于配置单元中的以下代码,对于第一个左外部联接的ON子句之后的WHERE子句,我在1处获得EOF错误

Sql 配置单元错误:对于配置单元中的以下代码,对于第一个左外部联接的ON子句之后的WHERE子句,我在1处获得EOF错误,sql,hadoop,hive,hiveql,Sql,Hadoop,Hive,Hiveql,格式正确的SQL查询只有一个where子句(不包括CTE和子查询)。因此: 然而,这似乎太复杂了。这个怎么样 select * from table1 a LEFT OUTER JOIN (select * from table99 where col = 1 ) b ON a.col1 = b.col1 AND a.col2 = b.col2 LEFT OUTER JOIN (select * fr

格式正确的SQL查询只有一个
where
子句(不包括CTE和子查询)。因此:

然而,这似乎太复杂了。这个怎么样

select *
from table1 a LEFT OUTER JOIN 
     (select * 
      from table99
      where col = 1
     ) b
     ON a.col1 = b.col1 AND
        a.col2 = b.col2 LEFT OUTER JOIN
     (select *
      from table99
      where col = 2
     ) c
     ON a.col1 = c.col1 AND
        a.col2 = c.col2
WHERE SIGN(a.col3) = 1;

格式正确的SQL查询只有一个
where
子句(不包括CTE和子查询)。因此:

然而,这似乎太复杂了。这个怎么样

select *
from table1 a LEFT OUTER JOIN 
     (select * 
      from table99
      where col = 1
     ) b
     ON a.col1 = b.col1 AND
        a.col2 = b.col2 LEFT OUTER JOIN
     (select *
      from table99
      where col = 2
     ) c
     ON a.col1 = c.col1 AND
        a.col2 = c.col2
WHERE SIGN(a.col3) = 1;

我认为你不需要在(a.col1=b.col1)上的这句话中加括号,我同意戈登的观点,你应该把你的ON和where语句结合起来我认为你不需要在(a.col1=b.col1)上的这句话中加括号,我同意戈登的观点,你应该梳理一下你的位置

select *
from table1 a LEFT OUTER JOIN 
     table99 b
     ON a.col1 = b.col1 AND
        a.col2 = b.col2 AND
        b.col = 1 LEFT OUTER JOIN
     table99 c
     ON a.col1 = c.col1 AND
        a.col2 = c.col2 AND
        c.col = 2 
WHERE a.col3 > 0;