【发布时间】:2020-09-14 09:17:28
【问题描述】:
我使用 HSQL 2.3.6,我想使用以下语法进行连接:
SELECT A.REF FROM TableA A, TableB B
WHERE A.NUM = B.NUM (+)
但在文档中(我的 HSQL 的最新版本)http://hsqldb.org/doc/2.0/guide/dataaccess-chapt.html#dac_joined_table 的语法是:
<joined table> ::= <cross join> | <qualified join> | <natural join>
<qualified join> ::= <table reference> | [ <join type> ] JOIN <table reference> <join specification>
<join specification> ::= <join condition> | <named columns join>
<join condition> ::= ON <search condition>
<join type> ::= INNER | <outer join type> [ OUTER ]
<outer join type> ::= LEFT | RIGHT | FULL
<join column list> ::= <column name list>
我的语法是SQLSyntaxErrorException,我认为这是因为我的语法不兼容。
但没有我的 HSQL 版本的文档,我不确定。你确认了吗?
提前谢谢你
【问题讨论】:
-
我认为
2.0手册实际上意味着2.x -
HSQLDB 2.3.6 版是 HSQLDB 2.4.1 的 JDK 6 兼容版本。更高版本中现有的 SQL 语法没有变化。您可以在此处下载 2.4.1 文档:sourceforge.net/projects/hsqldb/files/hsqldb
-
(+)是 Oracle 在 80 年代遗留下来的,当时 SQL-92 还不存在。避免使用这种旧语法,因为它有很多限制并且在其他任何地方都不起作用。
标签: sql join hsqldb outer-join