Join 运行配置单元联接查询时出错
错误:编译语句时出错:失败:ParseException行 22:0在“当前日期”附近的“左侧”缺少EOF (州=42000,代码=40000)Join 运行配置单元联接查询时出错,join,hive,Join,Hive,错误:编译语句时出错:失败:ParseException行 22:0在“当前日期”附近的“左侧”缺少EOF (州=42000,代码=40000) WHERE子句,即A.DATE>CURRENT_DATE应该在第一个select中。还要注意,您有一个条件A.ID=A.ID,而不是A.ID=A1.ID SELECT A.* , B.* FROM (SELECT ID,DATE FROM APPLE) A INNER JOIN (SELECT ID,MAX(DATE) AS MAXDATE FROM
WHERE子句,即
A.DATE>CURRENT_DATE
应该在第一个select中。还要注意,您有一个条件A.ID=A.ID
,而不是A.ID=A1.ID
SELECT A.* , B.* FROM
(SELECT ID,DATE FROM APPLE) A
INNER JOIN
(SELECT ID,MAX(DATE) AS MAXDATE FROM APPLE GROUP BY ID) A1
ON A.ID = A.ID AND A.DATE = A1.MAXDATE
WHERE A.DATE > CURRENT_DATE
LEFT OUTER JOIN (
SELECT ID,NAME FROM BANANA) B
ON A.ID = B.ID
WHERE B.NAME IN ('USA','GBR') LIMIT 10;
WHERE子句,即
A.DATE>CURRENT_DATE
应该在第一个select中。还要注意,您有一个条件A.ID=A.ID
,而不是A.ID=A1.ID
SELECT A.* , B.* FROM
(SELECT ID,DATE FROM APPLE) A
INNER JOIN
(SELECT ID,MAX(DATE) AS MAXDATE FROM APPLE GROUP BY ID) A1
ON A.ID = A.ID AND A.DATE = A1.MAXDATE
WHERE A.DATE > CURRENT_DATE
LEFT OUTER JOIN (
SELECT ID,NAME FROM BANANA) B
ON A.ID = B.ID
WHERE B.NAME IN ('USA','GBR') LIMIT 10;
<>你的问题是在SQL语句的中间有一个WHERE子句。可以将其移动到的嵌套查询中,也可以将其添加到末尾的WHERE子句中。您可能还希望将B表上的筛选移动到嵌套查询中,因为您实际上是通过将左连接放在语句末尾的WHERE子句中,使其成为内部连接 或者
SELECT
A.* , B.*
FROM
(SELECT ID,DATE FROM APPLE WHERE DATE > CURRENTDATE) A
INNER JOIN
(SELECT ID,MAX(DATE) AS MAXDATE FROM APPLE GROUP BY ID) A1
ON
A.ID = A1.ID AND A1.DATE = A1.MAXDATE
LEFT OUTER JOIN
(SELECT ID,NAME FROM BANANA) B
ON
A.ID = B.ID
WHERE B.NAME IN ('USA','GBR') LIMIT 10;
或
<>你的问题是在SQL语句的中间有一个WHERE子句。可以将其移动到的嵌套查询中,也可以将其添加到末尾的WHERE子句中。您可能还希望将B表上的筛选移动到嵌套查询中,因为您实际上是通过将左连接放在语句末尾的WHERE子句中,使其成为内部连接 或者
SELECT
A.* , B.*
FROM
(SELECT ID,DATE FROM APPLE WHERE DATE > CURRENTDATE) A
INNER JOIN
(SELECT ID,MAX(DATE) AS MAXDATE FROM APPLE GROUP BY ID) A1
ON
A.ID = A1.ID AND A1.DATE = A1.MAXDATE
LEFT OUTER JOIN
(SELECT ID,NAME FROM BANANA) B
ON
A.ID = B.ID
WHERE B.NAME IN ('USA','GBR') LIMIT 10;
或
我不确定这是否是配置单元的正确语法,但我非常确定
SELECT A.*,B.*FROM…
必须带有星形,而不带点?我只添加了A.*,B.*,出于某种原因,它没有显示出来。现在纠正它。这是一个猜测,但我认为它失败了,因为你在中间有哪一个语句,这意味着只有在结尾。您没有使用子查询对此语句进行筛选。如果我在on(左-外连接)之后插入where条件,则该内部连接部分需要where子句,这将无法解决我的目的。我不确定这是否是配置单元的正确语法,但我确信选择一个*,B.*FROM…
必须是带星的,而不带点吗?我只添加了A.*,B.*,因为某种原因它没有显示。现在纠正它。这是一个猜测,但我认为它失败了,因为你在中间有哪一个语句,这意味着只有在结尾。您没有使用子查询对此语句进行筛选。如果在on(左外连接)之后插入where条件,则该内部连接部分需要where子句,这将无法解决我的问题。