使用 JSqlParser 解析查询时,在某些情况下,JSqlParser 似乎决定将 SubJoin 对象生成为 FromItem,而不是常规的 Table / Join 对象。
您能帮我了解它何时发生以及为什么发生吗?它们之间的主要区别是什么?它与决定顺序的括号有关吗?
让解析器创建 SubJoin 对象的示例:
SELECT
test
FROM
((tbl1
LEFT JOIN tbl2 ON ((tbl1.id = tbl2.id)))
LEFT JOIN tbl3 ON ((tbl1.id = tbl3.id)))
让库仅创建连接对象的示例:
SELECT
test
FROM
tbl1
LEFT JOIN
tbl2 ON tbl1.id = tbl2.id
LEFT JOIN
tbl3 ON tbl1.id = tbl3.id;