首页 > 解决方案 > 无法在 Spark SQL 中执行嵌套 SQL 查询

问题描述

我正在尝试执行此查询,但它不起作用:

SELECT COLUMN
FROM TABLE A           
WHERE  A.COLUM_1 = '9999-12-31' AND NOT EXISTS (SELECT 1 FROM TABLE2 ET WHERE ET.COl1 = A.COL2 LIMIT 1)

它会导致一个错误,其中包含以下内容:

“预期输入不匹配”

浏览了这篇文章,因为它声明 Spark 支持 2.0+ 版本

标签: sqlapache-sparkapache-spark-sql

解决方案


我不确定 SparkSQL 是否支持TOP. 但这不是必需的。这行得通吗?

SELECT t.COLUMN
FROM TABLE t           
WHERE t.COLUM_1 = '9999-12-31' AND
      NOT EXISTS (SELECT 1 FROM TABLE2 ET WHERE ET.COl1 = t.COL2);

这修复了查询的一些其他语法问题(例如没有别名A)。

LIMIT在子查询中也不需要。 NOT EXISTS应该停在第一场比赛。


推荐阅读