H2 - 选择两个表的连接

时间:2015-07-17 15:05:06

标签: mysql join h2

尝试选择两个子选择的组合。这在MySQL中运行良好,但在我的H2 liquibase实例中不起作用。

在H2,它失败了:

  

错误:执行SQL时出错。 SQL语句中的语法错误

打印出整个输入。

我在Intellij中启用了H2代码格式,并在命名表t1周围显示错误。不确定如何在H2中进行子选择的连接。

SELECT name, store_code, min, max, message
 FROM (
  (
    SELECT
      DISTINCT name, level, store_code
    FROM
      name_mapping
    WHERE
      store_code in ('us', 'ca')
  ) t1
  JOIN
  (
    SELECT id as 'level', 5 as 'min', 7 as 'max', 'two' as 'message' from level where description='slow'
    UNION SELECT id as 'level', 3 as 'min', 5 as 'max', 'two' as 'message' from level where description='medium'
    UNION SELECT id as 'level', 1 as 'min', NULL as 'max', 'one' as 'message' from level where description='fast'
  ) t2
  ON t1.level = t2.level
)
GROUP BY name, store_code, min, max, message;

尝试根据联接将新信息插入新表中。 level表具有基于级别id的速度信息(我们必须按描述查找,因为id是自动递增的)。我想加入,那个包含在另一个表name_mapping中的速度级别的所有名称都加入了级别ID。

更新

这也在H2中出现语法错误但在MySQL中运行良好:

 select * from ( (select 'a') t1 join (select 'a') t2 on t1.a=t2.a );

0 个答案:

没有答案