SelectJoinStep<?> selectClause = select(field("ColumnA"), field("ColumnB"))
.from(table("TableA"));
if(condition) {
selectClause.join(table("TableB), JoinType.JOIN).on(field("columnA").eq(field("columnB")));
}
org.jooq.Query ps = selectClause.where(whereClause);
List<Field<?>> fields = new ArrayList<Field<?>>();
fields.add(...);
Table<?> from = table("TableA");
if(condition) {
from.join(table("TableB), JoinType.JOIN).on(field("columnA").eq(field("columnB")));
}
org.jooq.Query ps = select(fields).from(from);
将jOOQ用于动态SQL的最佳方法是一种功能更强的方法。在某些情况下,不要考虑“交换”查询的部分。考虑查询的哪些部分是由谁通过函数提供的?例如:
ResultQuery<?> query(
Supplier<Collection<SelectField<?>>> select,
boolean condition,
boolean paginate
) {
Condition whereClause = ...;
Table<?> from = table("TableA");
if (condition)
from = from.join(table("TableB")).on(field("ColumnA").eq(field("ColumnB")));
return select(select.get())
.from(from)
.where(whereClause)
.limit(paginate ? 10 : Integer.MAX_VALUE); // Could be done differently
}
现在调用上面的:
query(() -> Arrays.asList(field("ColumnA"), field("ColumnB")), true, true);
query(() -> Arrays.asList(count()), true, false);
当然,另一种选择是使用窗口函数来计算计数值,而不是运行两个查询:
count().over()
任何帮助都很感激! 编辑
问题内容: 我正在寻找学习如何动态构建Redux表单。想法是,名为componentDidMount的组件从服务器处获取项目列表,并将其插入商店store.my_items中: 现在这些项目都在商店中,我想为store.my_items中的每个项目构建一个带有字段的redux表单。 例如,其中一些动态创建: 使用react,redux-form,什么是构建这种动态redux表单的正确方法? 谢谢
问题内容: 让我们假设以下内容: 表A 我有一个ID列表(10、11、12、13、14),可用于在此表中查找ID。这个ID清单是在我的前端生成的。 使用纯SQL,我需要从此列表(10、11、12、13、14)中选择ID,这些ID在表A中没有条目(在“ id”列中联接)。结果应该是id的13和14的结果集。 如何仅使用SQL完成此操作?(此外,如果可能,我想避免使用存储过程) 我能想到的唯一方法是,
问题内容: 如何在javascript关联数组中动态创建键? 到目前为止,我发现的所有文档都是更新已创建的密钥: 我有这样的字符串 我想结束这样的事情: 那就是我分割字符串并获取第一个元素,然后将其放入字典中。 码 问题答案: 使用第一个示例。如果密钥不存在,它将被添加。 将弹出一个包含“ oscar”的消息框。 尝试:
我正试图将这个查询转换为jOOQ,但遇到了用于将值连接到数组的“”。 如何将值连接到数组?