SQL网格不支持FULL JOIN全接连吗?

NJCrazyRen 发布于 2017/08/21 11:42
阅读 283
收藏 0

@李玉珏 你好,想跟你请教个问题:我在学习使用Ignite 2.1.0时写了一条关联语句,想用全连接进行数据查询,但是出了一个异常:

Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "SELECT A.ID,A.NAME,B.ID TID,B.NAME TNAME FROM STUDENT A FULL JOIN[*] TEACHER B ON A.TID=B.ID ORDER BY A.ID ASC,B.ID ASC "; SQL statement:
select a.id,a.name,b.id tid,b.name tname from Student a full join Teacher b on a.tid=b.id order by a.id asc,b.id asc [42000-195]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.message.DbException.getSyntaxError(DbException.java:191)
    at org.h2.command.Parser.getSyntaxError(Parser.java:533)
    at org.h2.command.Parser.readJoin(Parser.java:1582)
    at org.h2.command.Parser.parseJoinTableFilter(Parser.java:1985)
    at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1941)
    at org.h2.command.Parser.parseSelectSimple(Parser.java:2089)
    at org.h2.command.Parser.parseSelectSub(Parser.java:1934)
    at org.h2.command.Parser.parseSelectUnion(Parser.java:1749)
    at org.h2.command.Parser.parseSelect(Parser.java:1737)
    at org.h2.command.Parser.parsePrepared(Parser.java:448)
    at org.h2.command.Parser.parse(Parser.java:320)
    at org.h2.command.Parser.parse(Parser.java:296)
    at org.h2.command.Parser.prepareCommand(Parser.java:257)
    at org.h2.engine.Session.prepareLocal(Session.java:573)
    at org.h2.engine.Session.prepareCommand(Session.java:514)
    at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
    at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:73)
    at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:288)
    at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepareStatement(IgniteH2Indexing.java:398)
    at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1273)
    ... 9 more

 

请问这是为什么呢?是H2的原因吗?

加载中
0
李玉珏
李玉珏

你这个提示就是语法错误。

Ignite的SQL查询是以H2作为SQL解析器的,所以语法H2不支持,那么Ignite就不会支持。

你换一种写法吧。

李玉珏
李玉珏
回复 @NJCrazyRen : 两个平台的技术路线不同。 你只能选择适合自己需求的技术平台了。
N
NJCrazyRen
全连接这个问题倒还好,但是我又试了group_concat之类的分组聚合函数,ignite也不支持,报UnsupportedOperationException。并且从官方文档上来看,貌似自定义sql函数也只能是一些相对简单的单行处理函数,不能像spark那样做UDAF、UDTF
返回顶部
顶部