- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用 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;
最佳答案
如果 from - 部分中有括号,则会创建 SubJoin:
FROM
((tbl1
LEFT JOIN tbl2 ON ((tbl1.id = tbl2.id)))
LEFT JOIN tbl3 ON ((tbl1.id = tbl3.id)))
您可以将 SubJoin 理解为层次更深的 fromItem + JoinExpression - 结构。因此,如果您愿意的话,SubJoin 本身就是括号。
如果你们都是访客,那么应该没有问题。使用 JSqlParser 版本>0.9,有供访问者使用的适配器类,例如ExpressionVisitorAdapter,这是所需访问者的标准实现。
关于java - JSqlParser 何时使用 SubJoin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354092/
我想从查询和子查询中获取所有选择的项目 根据此链接,https://stackoverflow.com/a/30505741/8249665我可以从主查询中获取选定的项目。 对于这样的子查询 - “S
以下字符串: x=92 and y=29 产生有效的输出:x=92 AND y=29并且它与CCJSqlParserUtil.parseCondExpression一起工作正常,但它不应该抛出以下异常
假设我有一个格式表达式 a>10 and b>20 and c>30 我想得到如下的表达式列表 a>10 b>20 c>30 如果我使用表达式访问者模式,对于 AndExpression 访问者,我写
我刚刚开始探索 JSqlparser。根据我的理解,我修改了 TablesNamesFinder 以提取列和表,它工作正常但有一个非常小的问题。 @Override public void visit
我想向我的 sql 添加新条件。例如如果查询是; SELECT EMP_ID, FIRST_NAME FROM EMPLOYEES; 我可以用这个代码添加新的 where 原因; @Override
我正在尝试找到从使用 JSQLParser 解析的查询中删除表达式(例如条件)的最简单方法。 假设我有以下查询(这里没有真正的逻辑): select a,b,c from table where a
我将 jar jsqlparser-0.7.0 添加到我的 Netbeans IDE(右键单击库/添加 Jar 文件)但我仍然无法使用它的包。可能是什么原因 。该库创建于 2011 年,可能是 JDK
当使用 JSqlParser 解析查询时,在某些情况下,JSqlParser 似乎决定生成 SubJoin 对象作为 FromItem,而不是常规的 Table/Join 对象。 您能帮我了解这种情况
我正在编写一个 SQL 查询评估器,并使用 JSQLParser 来解析查询。现在看来(并且此链接 http://sourceforge.net/p/jsqlparser/feature-reques
我已经开始使用 JSqlParser,我可以解析 Where 子句,但我无法进一步使用它。 JSqlParser github link 事实上,我已经尝试过重写访问方法,但不明白如何实现我的目标。
我想使用 JSqlParser 完整而简洁地解析 SQL where 子句。很容易将它解析成像这样的单独的条件语句 String whereClause = "a=3 AND b=4 AND c=5"
JSqlParser 中是否有任何选项可以解析查询,例如 create table public.sales1 as (select * from public.sales) 最佳答案 我假设您使用旧
我正在使用 JsqlParser 0.8.0。 我有以下字符串: String sql = "SELECT table alias FROM table;"; CCJSqlParserManager
我想知道是否可以使用 jsqlparser 将表达式添加到 sql 查询中。例如,我想在 sql 语句中添加一个列和一个值: 原始查询:“INSERT INTO frontend(in_reply_t
我正在尝试使用 JSqlParser 在 SQL 查询中查找 SQL 对象( token ?)的位置(行就足够了)。 例如,在查询中: SELECT a FROM table WHERE a = 1
我想获取 from 子句中的所有子查询,但是当我使用时 FromItem fromItems = plainSelect.getFromItem(); 它只是检索 from 子句中的第一个子查询以及
如何使用 JSQLParser 区分函数调用和字段名称? 例如,查询 SELECT COUNT(*) FROM db.table 将 COUNT(*) 解析为字段名称而不是函数调用。 我需要做什么来更
我正在使用 JSqlParser 3.0,我的查询是 SELECT * from [dev-testdb].dbo.EMPLOYEES 。我正在尝试删除 [] 字符,因为 JSqlParser 3.0
【现象】 2022-07-25 11:59:51.707 [http-nio-7006-exec-3] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - [log
我是一名优秀的程序员,十分优秀!