Hi
I tried the following sub-queries, it seems ignite can not work well.

"SELECT 
  a.* 
FROM
  (SELECT 
    CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id
  FROM
    "UserCache".user u,
    userorder ug 
  WHERE u.id = ug.usrid) a,
  (SELECT 
    CASE
      WHEN og.goodid < 5 
      THEN 100 
      ELSE og.goodid 
    END id 
  FROM
    userorder ug,
    "OrderGoodCache".ordergood og 
  WHERE ug.id = og.orderid) b 
WHERE a.id = b.id"

information about error as following:

Exception in thread "main" javax.cache.CacheException: class
org.apache.ignite.IgniteException: Failed to parse query: SELECT 
  a.* 
FROM
  (SELECT 
    CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id
  FROM
    "UserCache".user u,
    userorder ug 
  WHERE u.id = ug.usrid) a,
  (SELECT 
    CASE
      WHEN og.goodid < 5 
      THEN 100 
      ELSE og.goodid 
    END id 
  FROM
    userorder ug,
    "OrderGoodCache".ordergood og 
  WHERE ug.id = og.orderid) b 
WHERE a.id = b.id 
        at
org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:636)
        at cn.ffcs.main2.main(main2.java:54)
Caused by: class org.apache.ignite.IgniteException: Failed to parse query:
SELECT 
  a.* 
FROM
  (SELECT 
    CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id
  FROM
    "UserCache".user u,
    userorder ug 
  WHERE u.id = ug.usrid) a,
  (SELECT 
    CASE
      WHEN og.goodid < 5 
      THEN 100 
      ELSE og.goodid 
    END id 
  FROM
    userorder ug,
    "OrderGoodCache".ordergood og 
  WHERE ug.id = og.orderid) b 
WHERE a.id = b.id 
        at
org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:641)
        at
org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:627)
        ... 1 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to parse
query: SELECT 
  a.* 
FROM
  (SELECT 
    CASE WHEN u.id < 100 THEN u.id ELSE ug.id END id
  FROM
    "UserCache".user u,
    userorder ug 
  WHERE u.id = ug.usrid) a,
  (SELECT 
    CASE
      WHEN og.goodid < 5 
      THEN 100 
      ELSE og.goodid 
    END id 
  FROM
    userorder ug,
    "OrderGoodCache".ordergood og 
  WHERE ug.id = og.orderid) b 
WHERE a.id = b.id 
        at
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:1510)
        at
org.apache.ignite.internal.processors.query.GridQueryProcessor.queryTwoStep(GridQueryProcessor.java:634)
        ... 2 more



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/Does-Ignite-support-nested-SQL-Queries-tp1714p1910.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to