我使用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条答案
按热度按时间bxfogqkk1#
这个
(+)
是oracle的专有外部联接运算符(只有oracle支持),甚至oracle也建议停止使用它。hsqldb支持标准的左连接
(我不确定方向是否正确,我没有用过甲骨文的
(+)
运营商(数十年)goucqfw62#
不要在句子中使用逗号
FROM
条款。始终使用适当的、明确的、标准的、可读的JOIN
语法。对于外部联接,您使用的是过时的定制语法。我想你想要:
你可能把你的问题简单化了。如前所述,可能不需要外部联接: